diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 4fcde34ddb4..d0c29f20062 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -128,7 +128,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 diff --git a/Cargo.lock b/Cargo.lock index 4460bd08e83..835160ad4ba 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" @@ -6164,6 +6173,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 f1ea4ef9749..488bbbd43af 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -592,6 +592,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/db.rs b/ethexe/common/src/db.rs index 80b6b97c5c9..2a4ca53e8f3 100644 --- a/ethexe/common/src/db.rs +++ b/ethexe/common/src/db.rs @@ -273,7 +273,7 @@ mod tests { #[test] fn ensure_types_unchanged() { const EXPECTED_TYPE_INFO_HASH: &str = - "918c461a80e6ecd2fa36e7742d7c342c99a0b6a72a79b29ebb66499ee8a238f5"; + "1554344a8033892b1d0eb51a8bda2e4d5a2bee71d5cb5e1cc7faa1c0abed40b5"; let types = [ meta_type::(), 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 0865eff6c72..4942cb096c9 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. @@ -386,14 +389,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 { @@ -404,6 +411,8 @@ impl ActorAggregation { newest: transition, messages, value_claims, + events, + eth_events, exit_inheritor, } } @@ -413,6 +422,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, @@ -441,6 +452,8 @@ impl ActorAggregation { value_to_receive_negative_sign, value_claims: self.value_claims, messages: self.messages, + events: self.events, + eth_events: self.eth_events, } } } @@ -729,6 +742,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(), @@ -798,6 +813,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, @@ -808,6 +829,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, @@ -818,6 +841,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()], }, ]; @@ -830,6 +855,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); } @@ -848,6 +875,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -858,6 +887,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]); } @@ -877,6 +908,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor_b, @@ -887,6 +920,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]; @@ -917,6 +952,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor_b, @@ -927,6 +964,8 @@ mod tests { value_to_receive_negative_sign: true, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor_a, @@ -937,6 +976,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]); @@ -963,6 +1004,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -973,6 +1016,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]; @@ -1000,6 +1045,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -1010,6 +1057,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]; @@ -1036,6 +1085,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -1046,6 +1097,8 @@ mod tests { value_to_receive_negative_sign: true, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]); @@ -1068,6 +1121,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -1078,6 +1133,8 @@ mod tests { value_to_receive_negative_sign: true, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]); @@ -1143,6 +1200,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![msg_a.clone(), msg_b.clone(), msg_c.clone()], + events: vec![], + eth_events: vec![], }; // MB 1: has committed ids for (a) and (c) only. diff --git a/ethexe/contracts/src/IMirror.sol b/ethexe/contracts/src/IMirror.sol index a108c82b15a..c73c3bfeafb 100644 --- a/ethexe/contracts/src/IMirror.sol +++ b/ethexe/contracts/src/IMirror.sol @@ -129,6 +129,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 bd14f5af8fa..c1b9608e989 100644 --- a/ethexe/contracts/src/Mirror.sol +++ b/ethexe/contracts/src/Mirror.sol @@ -417,6 +417,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. */ @@ -444,7 +454,9 @@ contract Mirror is IMirror { _transition.valueToReceive, _transition.valueToReceiveNegativeSign, valueClaimsHash, - messagesHashesHash + messagesHashesHash, + eventsHashesHash, + ethEventsHashesHash ); } @@ -551,211 +563,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); } /** @@ -956,6 +785,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 48f855c73f9..ab9a3656595 100644 --- a/ethexe/contracts/src/libraries/Gear.sol +++ b/ethexe/contracts/src/libraries/Gear.sol @@ -477,6 +477,14 @@ library Gear { * @dev Array of messages. */ Message[] messages; + /** + * @dev Array of events. + */ + bytes[] events; + /** + * @dev Array of Ethereum events. + */ + bytes[] ethEvents; } /** @@ -684,6 +692,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, @@ -693,7 +703,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( @@ -704,7 +716,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 dc452066d64..d99dc7f80ac 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 a78e0c551f5..edc8052aab0 100644 --- a/ethexe/contracts/test/POC.t.sol +++ b/ethexe/contracts/test/POC.t.sol @@ -242,7 +242,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); @@ -279,7 +281,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 6c128a8c50e..beb01b7ee1d 100644 --- a/ethexe/db/src/iterator.rs +++ b/ethexe/db/src/iterator.rs @@ -749,6 +749,8 @@ where value_to_receive_negative_sign: _, value_claims: _, messages: _, + events: _, + eth_events: _, } = state_transition; let new_state_hash = *new_state_hash; @@ -977,8 +979,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<_> = @@ -1008,8 +1012,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<_> = @@ -1162,6 +1168,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 09927876457..e274bd0fc04 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":"1230:5485:152:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1230:5485:152:-:0;;;;;;;;;-1:-1:-1;1230:5485:152;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1230:5485:152;;;;;;;;;;;;;;;;;;:::i;:::-;3432:27;;;;:::i;:::-;3470:16;1230:5485;3502:13;1230:5485;3517:16;;;;;;3621:9;3601:70;3621:9;;;3609:21;;;3601:70;:::i;:::-;1230:5485;3702:16;;;;;;3621:9;;;3947:20;;3943:163;;3682:251;4121:34;1230:5485;;;;;;;;;;;;;;;:::i;:::-;4121:34;;;1230:5485;3943:163;1230:5485;3621:9;;4024:20;3621:9;;;4024:20;:::i;:::-;4001:10;:48;;;;:::i;:::-;;1230:5485;;;3943:163;;;1230:5485;;;;;;;;;3720:3;3774:8;;;;;:::i;:::-;1230:5485;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;;3876:17;1230:5485;3876:17;3895:19;-1:-1:-1;;;;;3876:17:152;1230:5485;3829:93;3876:17;;;:::i;:::-;1230:5485;3895:19;;;;;;:::i;:::-;1230:5485;;;;;;;;;;;;3829:93;;1230:5485;3829:93;;;:::i;:::-;;;;;;;;;1230:5485;3829:93;;;3720:3;1230:5485;3797:125;;;;;;:::i;:::-;1230:5485;;3687:13;;3829:93;;1230:5485;3829:93;;;;;;;;;1230:5485;3829:93;;;:::i;:::-;;;1230:5485;;;;;;;3829:93;;1230:5485;;;;3829:93;;;-1:-1:-1;3829:93:152;;;1230:5485;;;;;;;;;3535:3;3566:8;3554:26;1230:5485;3566:8;-1:-1:-1;;;;;3566:14:152;1230:5485;3566:8;;;;;:::i;:::-;:14;;:::i;:::-;1230:5485;3554:26;;:::i;:::-;3535:3;1230:5485;3502:13;;1230:5485;;;-1:-1:-1;;1230:5485:152;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1230:5485:152;;;;4887:27;;;:::i;:::-;1230:5485;;;;;;4959:20;;1230:5485;4959:20;1230:5485;4959:20;;;;;;;;;1230:5485;4959:20;;;1230:5485;-1:-1:-1;1230:5485:152;;;;-1:-1:-1;;1230:5485:152;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;4991:16;5023:13;1230:5485;5056:3;5038:16;;;;;;1230:5485;;;;;;;;;;;;;;;;;5144:39;5156:27;;;;-1:-1:-1;;;;;5156:27:152;;;:::i;5144:39::-;5218:9;5198:70;5218:9;;;5206:21;;;5198:70;:::i;:::-;1230:5485;;5303:85;1230:5485;;;;;;;;;5303:85;;1230:5485;;;5303:85;;1230:5485;5350:22;;;1230:5485;;;;;5382:4;1230:5485;;;;5303:85;;;;;;;1230:5485;5303:85;;;5056:3;5402:25;;;;;:::i;:::-;-1:-1:-1;;;;;1230:5485:152;;;;;;;5495:28;;;-1:-1:-1;;;;;5495:28:152;;;:::i;:::-;1230:5485;5491:390;;5056:3;5957:27;;5931:92;5957:27;5986:29;-1:-1:-1;;;;;5957:27:152;1230:5485;5957:27;;:::i;:::-;1230:5485;5986:29;1230:5485;5986:29;;;;:::i;5931:92::-;;;;;;;;;1230:5485;5931:92;;;5056:3;1230:5485;6037:25;;;;;;:::i;:::-;1230:5485;;5023:13;;5931:92;;1230:5485;5931:92;;;;;;;;;1230:5485;5931:92;;;:::i;:::-;;;1230:5485;;;;;;;5931:92;;;;;-1:-1:-1;5931:92:152;;5491:390;5622:28;1230:5485;-1:-1:-1;;;;;5303:85:152;5622:28;;;;;;:::i;:::-;1230:5485;;;;;;;;;;;5576:75;;5595:10;1230:5485;5576:75;;1230:5485;5382:4;1230:5485;;;;;;;;;5576:75;;;;;;;1230:5485;5576:75;;;5491:390;1230:5485;;;;5742:28;1230:5485;-1:-1:-1;;;;;1230:5485:152;5742:28;;;:::i;:::-;1230:5485;;;;;;;;;;;5717:54;;;1230:5485;5717:54;;1230:5485;;;;;;5717:54;;;;;;;1230:5485;5717:54;;;5491:390;1230:5485;;;;5837:28;;;:::i;:::-;5807:59;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;5807:59;;1230:5485;;5807:59;;1230:5485;;5807:59;1230:5485;5807:59;;;;;;;;;;-1:-1:-1;;;;;5957:27:152;5986:29;5807:59;5931:92;5807:59;1230:5485;5807:59;;;5491:390;;;;;;;;;;;5807:59;1230:5485;5807:59;;;:::i;:::-;;;;1230:5485;;;;;;;;;5717:54;;;;1230:5485;5717:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1230:5485;;;;;;;;;5576:75;;;;1230:5485;5576:75;;;;;;;;;:::i;:::-;;;;5303:85;;;;;1230:5485;5303:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;5038:16;;;;;5218:9;6087:20;;6083:163;;5018:1055;1230:5485;;;;;;;;;;;;;;;5156:27;1230:5485;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;;;;;;;;;;6083:163;1230:5485;5218:9;;6164:20;5218:9;;;6164:20;:::i;:::-;6141:10;:48;;;;:::i;:::-;;1230:5485;;;6083:163;;;4959:20;;;;1230:5485;4959:20;1230:5485;4959:20;;;;;;;:::i;:::-;;;;1230:5485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1230:5485:152;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1230:5485:152;;;;;-1:-1:-1;1230:5485:152;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1230:5485:152;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1230:5485:152;;;;;:::i;:::-;;;;-1:-1:-1;1230:5485:152;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0x1d612b419ca35b242706463c1e1eff3e9ef0ee6ca8e6cbc156f0dc4c108b1792\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://e86abdbd13d6ba560a59fa2efd23985e62ced2f0505fe4eac1a6f47c5169bdca\",\"dweb:/ipfs/QmdsJ9L1bFcuHi9UF517C8z5iciVRuWtt1zsN299rEX1Tq\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x842e473d73e594ced961a26890d62c8b134be06bd8926ebec648d22a947bc74b\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://077789711f31e9acc89a02b7bfbe304ed44dce4b64d4f5f88323a4cc206e8dfe\",\"dweb:/ipfs/QmPGeWPCYLKxKf4nt83nT3ckRgi6D2T9PWULhoxqGZfkSA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2\",\"dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd\",\"dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0x1d612b419ca35b242706463c1e1eff3e9ef0ee6ca8e6cbc156f0dc4c108b1792","urls":["bzz-raw://e86abdbd13d6ba560a59fa2efd23985e62ced2f0505fe4eac1a6f47c5169bdca","dweb:/ipfs/QmdsJ9L1bFcuHi9UF517C8z5iciVRuWtt1zsN299rEX1Tq"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0x842e473d73e594ced961a26890d62c8b134be06bd8926ebec648d22a947bc74b","urls":["bzz-raw://077789711f31e9acc89a02b7bfbe304ed44dce4b64d4f5f88323a4cc206e8dfe","dweb:/ipfs/QmPGeWPCYLKxKf4nt83nT3ckRgi6D2T9PWULhoxqGZfkSA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb","urls":["bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2","dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0","urls":["bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd","dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":76500,"exportedSymbols":{"BatchMulticall":[76499],"IMirror":[77166],"IRouter":[77791],"IWrappedVara":[77807]},"nodeType":"SourceUnit","src":"114:6602:152","nodes":[{"id":76117,"nodeType":"PragmaDirective","src":"114:24:152","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":76119,"nodeType":"ImportDirective","src":"140:40:152","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":76500,"sourceUnit":77167,"symbolAliases":[{"foreign":{"id":76118,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"148:7:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76121,"nodeType":"ImportDirective","src":"181:40:152","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":76500,"sourceUnit":77792,"symbolAliases":[{"foreign":{"id":76120,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77791,"src":"189:7:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76123,"nodeType":"ImportDirective","src":"222:50:152","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":76500,"sourceUnit":77808,"symbolAliases":[{"foreign":{"id":76122,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"230:12:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76499,"nodeType":"ContractDefinition","src":"1230:5485:152","nodes":[{"id":76131,"nodeType":"ErrorDefinition","src":"1352:58:152","nodes":[],"documentation":{"id":76125,"nodeType":"StructuredDocumentation","src":"1260:87:152","text":" @dev There is not enough value sent with transaction to cover calls."},"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"1358:17:152","parameters":{"id":76130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76127,"mutability":"mutable","name":"expected","nameLocation":"1384:8:152","nodeType":"VariableDeclaration","scope":76131,"src":"1376:16:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76126,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76129,"mutability":"mutable","name":"actual","nameLocation":"1402:6:152","nodeType":"VariableDeclaration","scope":76131,"src":"1394:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1394:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1375:34:152"}},{"id":76134,"nodeType":"ErrorDefinition","src":"1485:21:152","nodes":[],"documentation":{"id":76132,"nodeType":"StructuredDocumentation","src":"1416:64:152","text":" @dev Refunding excess value to sender failed."},"errorSelector":"f0c49d44","name":"RefundFailed","nameLocation":"1491:12:152","parameters":{"id":76133,"nodeType":"ParameterList","parameters":[],"src":"1503:2:152"}},{"id":76137,"nodeType":"ErrorDefinition","src":"1602:27:152","nodes":[],"documentation":{"id":76135,"nodeType":"StructuredDocumentation","src":"1512:85:152","text":" @dev Transferring WVARA token from sender to this contract failed."},"errorSelector":"7939f424","name":"TransferFromFailed","nameLocation":"1608:18:152","parameters":{"id":76136,"nodeType":"ParameterList","parameters":[],"src":"1626:2:152"}},{"id":76140,"nodeType":"ErrorDefinition","src":"1722:22:152","nodes":[],"documentation":{"id":76138,"nodeType":"StructuredDocumentation","src":"1635:82:152","text":" @dev Approving WVARA token for created program (Mirror) failed."},"errorSelector":"3e3f8f73","name":"ApproveFailed","nameLocation":"1728:13:152","parameters":{"id":76139,"nodeType":"ParameterList","parameters":[],"src":"1741:2:152"}},{"id":76146,"nodeType":"EventDefinition","src":"1867:51:152","nodes":[],"anonymous":false,"documentation":{"id":76141,"nodeType":"StructuredDocumentation","src":"1750:112:152","text":" @dev Emitted when batch of messages is sent. It contains array of message ids that were sent."},"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"1873:22:152","parameters":{"id":76145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76144,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"1906:10:152","nodeType":"VariableDeclaration","scope":76146,"src":"1896:20:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":76142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1896:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76143,"nodeType":"ArrayTypeName","src":"1896:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1895:22:152"}},{"id":76154,"nodeType":"StructDefinition","src":"2190:96:152","nodes":[],"canonicalName":"BatchMulticall.MessageCall","documentation":{"id":76147,"nodeType":"StructuredDocumentation","src":"1924:261:152","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":76149,"mutability":"mutable","name":"mirror","nameLocation":"2227:6:152","nodeType":"VariableDeclaration","scope":76154,"src":"2219:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76148,"name":"address","nodeType":"ElementaryTypeName","src":"2219:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76151,"mutability":"mutable","name":"payload","nameLocation":"2249:7:152","nodeType":"VariableDeclaration","scope":76154,"src":"2243:13:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":76150,"name":"bytes","nodeType":"ElementaryTypeName","src":"2243:5:152","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76153,"mutability":"mutable","name":"value","nameLocation":"2274:5:152","nodeType":"VariableDeclaration","scope":76154,"src":"2266:13:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76152,"name":"uint128","nodeType":"ElementaryTypeName","src":"2266:7:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"2197:11:152","scope":76499,"visibility":"public"},{"id":76166,"nodeType":"StructDefinition","src":"2962:160:152","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","documentation":{"id":76155,"nodeType":"StructuredDocumentation","src":"2292:665:152","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":76157,"mutability":"mutable","name":"codeId","nameLocation":"3005:6:152","nodeType":"VariableDeclaration","scope":76166,"src":"2997:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2997:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76159,"mutability":"mutable","name":"salt","nameLocation":"3029:4:152","nodeType":"VariableDeclaration","scope":76166,"src":"3021:12:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3021:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76161,"mutability":"mutable","name":"initPayload","nameLocation":"3049:11:152","nodeType":"VariableDeclaration","scope":76166,"src":"3043:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":76160,"name":"bytes","nodeType":"ElementaryTypeName","src":"3043:5:152","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76163,"mutability":"mutable","name":"initValue","nameLocation":"3078:9:152","nodeType":"VariableDeclaration","scope":76166,"src":"3070:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76162,"name":"uint128","nodeType":"ElementaryTypeName","src":"3070:7:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":76165,"mutability":"mutable","name":"topUpValue","nameLocation":"3105:10:152","nodeType":"VariableDeclaration","scope":76166,"src":"3097:18:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76164,"name":"uint128","nodeType":"ElementaryTypeName","src":"3097:7:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"2969:17:152","scope":76499,"visibility":"public"},{"id":76288,"nodeType":"FunctionDefinition","src":"3319:843:152","nodes":[],"body":{"id":76287,"nodeType":"Block","src":"3392:770:152","nodes":[],"statements":[{"assignments":[76178],"declarations":[{"constant":false,"id":76178,"mutability":"mutable","name":"messageIds","nameLocation":"3419:10:152","nodeType":"VariableDeclaration","scope":76287,"src":"3402:27:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":76176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3402:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76177,"nodeType":"ArrayTypeName","src":"3402:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":76185,"initialValue":{"arguments":[{"expression":{"id":76182,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3446:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3452:6:152","memberName":"length","nodeType":"MemberAccess","src":"3446:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3432:13:152","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":76179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3436:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76180,"nodeType":"ArrayTypeName","src":"3436:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":76184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3432:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3402:57:152"},{"assignments":[76187],"declarations":[{"constant":false,"id":76187,"mutability":"mutable","name":"consumed","nameLocation":"3478:8:152","nodeType":"VariableDeclaration","scope":76287,"src":"3470:16:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76186,"name":"uint256","nodeType":"ElementaryTypeName","src":"3470:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76188,"nodeType":"VariableDeclarationStatement","src":"3470:16:152"},{"body":{"id":76207,"nodeType":"Block","src":"3540:51:152","statements":[{"expression":{"id":76205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76200,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"3554:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":76201,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3566:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76203,"indexExpression":{"id":76202,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76190,"src":"3572:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3566:8:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":76204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3575:5:152","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":76153,"src":"3566:14:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3554:26:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76206,"nodeType":"ExpressionStatement","src":"3554:26:152"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76190,"src":"3517:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76194,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3521:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3527:6:152","memberName":"length","nodeType":"MemberAccess","src":"3521:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3517:16:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76208,"initializationExpression":{"assignments":[76190],"declarations":[{"constant":false,"id":76190,"mutability":"mutable","name":"i","nameLocation":"3510:1:152","nodeType":"VariableDeclaration","scope":76208,"src":"3502:9:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76189,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76192,"initialValue":{"hexValue":"30","id":76191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3514:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3502:13:152"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3535:3:152","subExpression":{"id":76197,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76190,"src":"3537:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76199,"nodeType":"ExpressionStatement","src":"3535:3:152"},"nodeType":"ForStatement","src":"3497:94:152"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76210,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"3609:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":76211,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3621:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3625:5:152","memberName":"value","nodeType":"MemberAccess","src":"3621:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3609:21:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":76215,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"3650:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76216,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3660:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3664:5:152","memberName":"value","nodeType":"MemberAccess","src":"3660:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76214,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"3632:17:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":76218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3632:38:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76209,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3601:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:70:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76220,"nodeType":"ExpressionStatement","src":"3601:70:152"},{"body":{"id":76256,"nodeType":"Block","src":"3725:208:152","statements":[{"assignments":[76234],"declarations":[{"constant":false,"id":76234,"mutability":"mutable","name":"messageCall","nameLocation":"3760:11:152","nodeType":"VariableDeclaration","scope":76256,"src":"3739:32:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":76233,"nodeType":"UserDefinedTypeName","pathNode":{"id":76232,"name":"MessageCall","nameLocations":["3739:11:152"],"nodeType":"IdentifierPath","referencedDeclaration":76154,"src":"3739:11:152"},"referencedDeclaration":76154,"src":"3739:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":76238,"initialValue":{"baseExpression":{"id":76235,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3774:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76237,"indexExpression":{"id":76236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76222,"src":"3780:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3774:8:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"3739:43:152"},{"expression":{"id":76254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76239,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76178,"src":"3797:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":76241,"indexExpression":{"id":76240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76222,"src":"3808:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3797:13:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76250,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"3895:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":76251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3907:7:152","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":76151,"src":"3895:19:152","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":76252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3916:5:152","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":76243,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"3837:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":76244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3849:6:152","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":76149,"src":"3837:18:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76242,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"3829:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77166_$","typeString":"type(contract IMirror)"}},"id":76245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":76246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3857:11:152","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":77106,"src":"3829:39:152","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":76249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":76247,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"3876:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":76248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3888:5:152","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":76153,"src":"3876:17:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"3829:65:152","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":76253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:93:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3797:125:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76255,"nodeType":"ExpressionStatement","src":"3797:125:152"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76222,"src":"3702:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76226,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3706:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3712:6:152","memberName":"length","nodeType":"MemberAccess","src":"3706:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3702:16:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76257,"initializationExpression":{"assignments":[76222],"declarations":[{"constant":false,"id":76222,"mutability":"mutable","name":"i","nameLocation":"3695:1:152","nodeType":"VariableDeclaration","scope":76257,"src":"3687:9:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3687:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76224,"initialValue":{"hexValue":"30","id":76223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3699:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3687:13:152"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3720:3:152","subExpression":{"id":76229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76222,"src":"3722:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76231,"nodeType":"ExpressionStatement","src":"3720:3:152"},"nodeType":"ForStatement","src":"3682:251:152"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76258,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"3947:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76259,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3958:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3962:5:152","memberName":"value","nodeType":"MemberAccess","src":"3958:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3947:20:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76282,"nodeType":"IfStatement","src":"3943:163:152","trueBody":{"id":76281,"nodeType":"Block","src":"3969:137:152","statements":[{"assignments":[76263,null],"declarations":[{"constant":false,"id":76263,"mutability":"mutable","name":"success","nameLocation":"3989:7:152","nodeType":"VariableDeclaration","scope":76281,"src":"3984:12:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76262,"name":"bool","nodeType":"ElementaryTypeName","src":"3984:4:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":76274,"initialValue":{"arguments":[{"hexValue":"","id":76272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4046:2:152","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":76264,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4001:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4005:6:152","memberName":"sender","nodeType":"MemberAccess","src":"4001:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4012:4:152","memberName":"call","nodeType":"MemberAccess","src":"4001:15:152","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":76271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76267,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4024:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4028:5:152","memberName":"value","nodeType":"MemberAccess","src":"4024:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76269,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"4036:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4024:20:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4001:44:152","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":76273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4001:48:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3983:66:152"},{"expression":{"arguments":[{"id":76276,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76263,"src":"4071:7:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76277,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76134,"src":"4080:12:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4080:14:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76275,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4063:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4063:32:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76280,"nodeType":"ExpressionStatement","src":"4063:32:152"}]}},{"eventCall":{"arguments":[{"id":76284,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76178,"src":"4144:10:152","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":76283,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"4121:22:152","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":76285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4121:34:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76286,"nodeType":"EmitStatement","src":"4116:39:152"}]},"documentation":{"id":76167,"nodeType":"StructuredDocumentation","src":"3128:186:152","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":"3328:16:152","parameters":{"id":76172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76171,"mutability":"mutable","name":"calls","nameLocation":"3368:5:152","nodeType":"VariableDeclaration","scope":76288,"src":"3345:28:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":76169,"nodeType":"UserDefinedTypeName","pathNode":{"id":76168,"name":"MessageCall","nameLocations":["3345:11:152"],"nodeType":"IdentifierPath","referencedDeclaration":76154,"src":"3345:11:152"},"referencedDeclaration":76154,"src":"3345:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":76170,"nodeType":"ArrayTypeName","src":"3345:13:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"3344:30:152"},"returnParameters":{"id":76173,"nodeType":"ParameterList","parameters":[],"src":"3392:0:152"},"scope":76499,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76493,"nodeType":"FunctionDefinition","src":"4610:1684:152","nodes":[],"body":{"id":76492,"nodeType":"Block","src":"4780:1514:152","nodes":[],"statements":[{"assignments":[76309],"declarations":[{"constant":false,"id":76309,"mutability":"mutable","name":"programIds","nameLocation":"4807:10:152","nodeType":"VariableDeclaration","scope":76492,"src":"4790:27:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76307,"name":"address","nodeType":"ElementaryTypeName","src":"4790:7:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76308,"nodeType":"ArrayTypeName","src":"4790:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76316,"initialValue":{"arguments":[{"expression":{"id":76313,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"4834:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":76314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4840:6:152","memberName":"length","nodeType":"MemberAccess","src":"4834:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4820:13:152","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":76310,"name":"address","nodeType":"ElementaryTypeName","src":"4824:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76311,"nodeType":"ArrayTypeName","src":"4824:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4820:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4790:57:152"},{"assignments":[76321],"declarations":[{"constant":false,"id":76321,"mutability":"mutable","name":"messageIds","nameLocation":"4874:10:152","nodeType":"VariableDeclaration","scope":76492,"src":"4857:27:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":76319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4857:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76320,"nodeType":"ArrayTypeName","src":"4857:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":76328,"initialValue":{"arguments":[{"expression":{"id":76325,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"4901:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":76326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4907:6:152","memberName":"length","nodeType":"MemberAccess","src":"4901:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4887:13:152","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":76322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4891:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76323,"nodeType":"ArrayTypeName","src":"4891:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":76327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4887:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4857:57:152"},{"assignments":[76331],"declarations":[{"constant":false,"id":76331,"mutability":"mutable","name":"wvara","nameLocation":"4938:5:152","nodeType":"VariableDeclaration","scope":76492,"src":"4925:18:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"},"typeName":{"id":76330,"nodeType":"UserDefinedTypeName","pathNode":{"id":76329,"name":"IWrappedVara","nameLocations":["4925:12:152"],"nodeType":"IdentifierPath","referencedDeclaration":77807,"src":"4925:12:152"},"referencedDeclaration":77807,"src":"4925:12:152","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":76337,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76333,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76292,"src":"4959:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77791","typeString":"contract IRouter"}},"id":76334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4966:11:152","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":77463,"src":"4959:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4959:20:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76332,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"4946:12:152","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77807_$","typeString":"type(contract IWrappedVara)"}},"id":76336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4946:34:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"4925:55:152"},{"assignments":[76339],"declarations":[{"constant":false,"id":76339,"mutability":"mutable","name":"consumed","nameLocation":"4999:8:152","nodeType":"VariableDeclaration","scope":76492,"src":"4991:16:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76338,"name":"uint256","nodeType":"ElementaryTypeName","src":"4991:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76340,"nodeType":"VariableDeclarationStatement","src":"4991:16:152"},{"body":{"id":76461,"nodeType":"Block","src":"5061:1012:152","statements":[{"assignments":[76354],"declarations":[{"constant":false,"id":76354,"mutability":"mutable","name":"createProgramCall","nameLocation":"5102:17:152","nodeType":"VariableDeclaration","scope":76461,"src":"5075:44:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":76353,"nodeType":"UserDefinedTypeName","pathNode":{"id":76352,"name":"CreateProgramCall","nameLocations":["5075:17:152"],"nodeType":"IdentifierPath","referencedDeclaration":76166,"src":"5075:17:152"},"referencedDeclaration":76166,"src":"5075:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":76358,"initialValue":{"baseExpression":{"id":76355,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"5122:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":76357,"indexExpression":{"id":76356,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"5128:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5122:8:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"5075:55:152"},{"expression":{"id":76362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76359,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"5144:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":76360,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5156:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5174:9:152","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":76163,"src":"5156:27:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5144:39:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76363,"nodeType":"ExpressionStatement","src":"5144:39:152"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76365,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"5206:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":76366,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5218:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5222:5:152","memberName":"value","nodeType":"MemberAccess","src":"5218:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5206:21:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":76370,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"5247:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76371,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5257:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5261:5:152","memberName":"value","nodeType":"MemberAccess","src":"5257:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76369,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"5229:17:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":76373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5229:38:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5198:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5198:70:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76375,"nodeType":"ExpressionStatement","src":"5198:70:152"},{"assignments":[76377],"declarations":[{"constant":false,"id":76377,"mutability":"mutable","name":"programId","nameLocation":"5291:9:152","nodeType":"VariableDeclaration","scope":76461,"src":"5283:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76376,"name":"address","nodeType":"ElementaryTypeName","src":"5283:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76389,"initialValue":{"arguments":[{"expression":{"id":76380,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5324:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5342:6:152","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":76157,"src":"5324:24:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76382,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5350:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5368:4:152","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":76159,"src":"5350:22:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76386,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5382:4:152","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$76499","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$76499","typeString":"contract BatchMulticall"}],"id":76385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5374:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76384,"name":"address","nodeType":"ElementaryTypeName","src":"5374:7:152","typeDescriptions":{}}},"id":76387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5374:13:152","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":76378,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76292,"src":"5303:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77791","typeString":"contract IRouter"}},"id":76379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5310:13:152","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":77717,"src":"5303:20:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":76388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5303:85:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5283:105:152"},{"expression":{"id":76394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76390,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76309,"src":"5402:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76392,"indexExpression":{"id":76391,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"5413:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5402:13:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76393,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"5418:9:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5402:25:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76395,"nodeType":"ExpressionStatement","src":"5402:25:152"},{"assignments":[76398],"declarations":[{"constant":false,"id":76398,"mutability":"mutable","name":"mirror","nameLocation":"5449:6:152","nodeType":"VariableDeclaration","scope":76461,"src":"5441:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"},"typeName":{"id":76397,"nodeType":"UserDefinedTypeName","pathNode":{"id":76396,"name":"IMirror","nameLocations":["5441:7:152"],"nodeType":"IdentifierPath","referencedDeclaration":77166,"src":"5441:7:152"},"referencedDeclaration":77166,"src":"5441:7:152","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"visibility":"internal"}],"id":76402,"initialValue":{"arguments":[{"id":76400,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"5466:9:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76399,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"5458:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77166_$","typeString":"type(contract IMirror)"}},"id":76401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5458:18:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"5441:35:152"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76403,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5495:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5513:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":76165,"src":"5495:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5526:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5495:32:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76442,"nodeType":"IfStatement","src":"5491:390:152","trueBody":{"id":76441,"nodeType":"Block","src":"5529:352:152","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76410,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5595:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5599:6:152","memberName":"sender","nodeType":"MemberAccess","src":"5595:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76414,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5615:4:152","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$76499","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$76499","typeString":"contract BatchMulticall"}],"id":76413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5607:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76412,"name":"address","nodeType":"ElementaryTypeName","src":"5607:7:152","typeDescriptions":{}}},"id":76415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5607:13:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76416,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5622:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5640:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":76165,"src":"5622:28:152","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":76408,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76331,"src":"5576:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":76409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5582:12:152","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"5576:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":76418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5576:75:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76419,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"5653:18:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:20:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76407,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5547:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5547:144:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76422,"nodeType":"ExpressionStatement","src":"5547:144:152"},{"expression":{"arguments":[{"arguments":[{"id":76426,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"5731:9:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76427,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5742:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5760:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":76165,"src":"5742:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76424,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76331,"src":"5717:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":76425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5723:7:152","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":2659,"src":"5717:13:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":76429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5717:54:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76430,"name":"ApproveFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"5773:13:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5773:15:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5709:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5709:80:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76433,"nodeType":"ExpressionStatement","src":"5709:80:152"},{"expression":{"arguments":[{"expression":{"id":76437,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5837:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5855:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":76165,"src":"5837:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76434,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76398,"src":"5807:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":76436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5814:22:152","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":77126,"src":"5807:29:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":76439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5807:59:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76440,"nodeType":"ExpressionStatement","src":"5807:59:152"}]}},{"assignments":[76444],"declarations":[{"constant":false,"id":76444,"mutability":"mutable","name":"messageId","nameLocation":"5903:9:152","nodeType":"VariableDeclaration","scope":76461,"src":"5895:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5895:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76454,"initialValue":{"arguments":[{"expression":{"id":76450,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5986:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6004:11:152","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":76161,"src":"5986:29:152","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":76452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6017:5:152","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":76445,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76398,"src":"5931:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":76446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5938:11:152","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":77106,"src":"5931:18:152","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":76449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":76447,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5957:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5975:9:152","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":76163,"src":"5957:27:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5931:54:152","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":76453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:92:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5895:128:152"},{"expression":{"id":76459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76455,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"6037:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":76457,"indexExpression":{"id":76456,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"6048:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6037:13:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76458,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76444,"src":"6053:9:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6037:25:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76460,"nodeType":"ExpressionStatement","src":"6037:25:152"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"5038:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76346,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"5042:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":76347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5048:6:152","memberName":"length","nodeType":"MemberAccess","src":"5042:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5038:16:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76462,"initializationExpression":{"assignments":[76342],"declarations":[{"constant":false,"id":76342,"mutability":"mutable","name":"i","nameLocation":"5031:1:152","nodeType":"VariableDeclaration","scope":76462,"src":"5023:9:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76341,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76344,"initialValue":{"hexValue":"30","id":76343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5035:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5023:13:152"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5056:3:152","subExpression":{"id":76349,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"5058:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76351,"nodeType":"ExpressionStatement","src":"5056:3:152"},"nodeType":"ForStatement","src":"5018:1055:152"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76463,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"6087:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76464,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6098:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6102:5:152","memberName":"value","nodeType":"MemberAccess","src":"6098:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6087:20:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76487,"nodeType":"IfStatement","src":"6083:163:152","trueBody":{"id":76486,"nodeType":"Block","src":"6109:137:152","statements":[{"assignments":[76468,null],"declarations":[{"constant":false,"id":76468,"mutability":"mutable","name":"success","nameLocation":"6129:7:152","nodeType":"VariableDeclaration","scope":76486,"src":"6124:12:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76467,"name":"bool","nodeType":"ElementaryTypeName","src":"6124:4:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":76479,"initialValue":{"arguments":[{"hexValue":"","id":76477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6186:2:152","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":76469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6141:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6145:6:152","memberName":"sender","nodeType":"MemberAccess","src":"6141:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6152:4:152","memberName":"call","nodeType":"MemberAccess","src":"6141:15:152","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":76476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76472,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6164:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6168:5:152","memberName":"value","nodeType":"MemberAccess","src":"6164:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76474,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"6176:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6164:20:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6141:44:152","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":76478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6141:48:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6123:66:152"},{"expression":{"arguments":[{"id":76481,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76468,"src":"6211:7:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76482,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76134,"src":"6220:12:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6220:14:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76480,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6203:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6203:32:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76485,"nodeType":"ExpressionStatement","src":"6203:32:152"}]}},{"expression":{"components":[{"id":76488,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76309,"src":"6264:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":76489,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"6276:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":76490,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6263:24:152","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":76304,"id":76491,"nodeType":"Return","src":"6256:31:152"}]},"documentation":{"id":76289,"nodeType":"StructuredDocumentation","src":"4168:437:152","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":"4619:18:152","parameters":{"id":76297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76292,"mutability":"mutable","name":"router","nameLocation":"4646:6:152","nodeType":"VariableDeclaration","scope":76493,"src":"4638:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77791","typeString":"contract IRouter"},"typeName":{"id":76291,"nodeType":"UserDefinedTypeName","pathNode":{"id":76290,"name":"IRouter","nameLocations":["4638:7:152"],"nodeType":"IdentifierPath","referencedDeclaration":77791,"src":"4638:7:152"},"referencedDeclaration":77791,"src":"4638:7:152","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77791","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":76296,"mutability":"mutable","name":"calls","nameLocation":"4683:5:152","nodeType":"VariableDeclaration","scope":76493,"src":"4654:34:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":76294,"nodeType":"UserDefinedTypeName","pathNode":{"id":76293,"name":"CreateProgramCall","nameLocations":["4654:17:152"],"nodeType":"IdentifierPath","referencedDeclaration":76166,"src":"4654:17:152"},"referencedDeclaration":76166,"src":"4654:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":76295,"nodeType":"ArrayTypeName","src":"4654:19:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"4637:52:152"},"returnParameters":{"id":76304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76493,"src":"4740:16:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76298,"name":"address","nodeType":"ElementaryTypeName","src":"4740:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76299,"nodeType":"ArrayTypeName","src":"4740:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76493,"src":"4758:16:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":76301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4758:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76302,"nodeType":"ArrayTypeName","src":"4758:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4739:36:152"},"scope":76499,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76498,"nodeType":"FunctionDefinition","src":"6684:29:152","nodes":[],"body":{"id":76497,"nodeType":"Block","src":"6711:2:152","nodes":[],"statements":[]},"documentation":{"id":76494,"nodeType":"StructuredDocumentation","src":"6300:379:152","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":76495,"nodeType":"ParameterList","parameters":[],"src":"6691:2:152"},"returnParameters":{"id":76496,"nodeType":"ParameterList","parameters":[],"src":"6711:0:152"},"scope":76499,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","documentation":{"id":76124,"nodeType":"StructuredDocumentation","src":"274:955:152","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":[76499],"name":"BatchMulticall","nameLocation":"1239:14:152","scope":76500,"usedErrors":[76131,76134,76137,76140],"usedEvents":[76146]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":152} \ 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":"1230:5485:152:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1230:5485:152:-:0;;;;;;;;;-1:-1:-1;1230:5485:152;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1230:5485:152;;;;;;;;;;;;;;;;;;:::i;:::-;3432:27;;;;:::i;:::-;3470:16;1230:5485;3502:13;1230:5485;3517:16;;;;;;3621:9;3601:70;3621:9;;;3609:21;;;3601:70;:::i;:::-;1230:5485;3702:16;;;;;;3621:9;;;3947:20;;3943:163;;3682:251;4121:34;1230:5485;;;;;;;;;;;;;;;:::i;:::-;4121:34;;;1230:5485;3943:163;1230:5485;3621:9;;4024:20;3621:9;;;4024:20;:::i;:::-;4001:10;:48;;;;:::i;:::-;;1230:5485;;;3943:163;;;1230:5485;;;;;;;;;3720:3;3774:8;;;;;:::i;:::-;1230:5485;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;;3876:17;1230:5485;3876:17;3895:19;-1:-1:-1;;;;;3876:17:152;1230:5485;3829:93;3876:17;;;:::i;:::-;1230:5485;3895:19;;;;;;:::i;:::-;1230:5485;;;;;;;;;;;;3829:93;;1230:5485;3829:93;;;:::i;:::-;;;;;;;;;1230:5485;3829:93;;;3720:3;1230:5485;3797:125;;;;;;:::i;:::-;1230:5485;;3687:13;;3829:93;;1230:5485;3829:93;;;;;;;;;1230:5485;3829:93;;;:::i;:::-;;;1230:5485;;;;;;;3829:93;;1230:5485;;;;3829:93;;;-1:-1:-1;3829:93:152;;;1230:5485;;;;;;;;;3535:3;3566:8;3554:26;1230:5485;3566:8;-1:-1:-1;;;;;3566:14:152;1230:5485;3566:8;;;;;:::i;:::-;:14;;:::i;:::-;1230:5485;3554:26;;:::i;:::-;3535:3;1230:5485;3502:13;;1230:5485;;;-1:-1:-1;;1230:5485:152;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1230:5485:152;;;;4887:27;;;:::i;:::-;1230:5485;;;;;;4959:20;;1230:5485;4959:20;1230:5485;4959:20;;;;;;;;;1230:5485;4959:20;;;1230:5485;-1:-1:-1;1230:5485:152;;;;-1:-1:-1;;1230:5485:152;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;4991:16;5023:13;1230:5485;5056:3;5038:16;;;;;;1230:5485;;;;;;;;;;;;;;;;;5144:39;5156:27;;;;-1:-1:-1;;;;;5156:27:152;;;:::i;5144:39::-;5218:9;5198:70;5218:9;;;5206:21;;;5198:70;:::i;:::-;1230:5485;;5303:85;1230:5485;;;;;;;;;5303:85;;1230:5485;;;5303:85;;1230:5485;5350:22;;;1230:5485;;;;;5382:4;1230:5485;;;;5303:85;;;;;;;1230:5485;5303:85;;;5056:3;5402:25;;;;;:::i;:::-;-1:-1:-1;;;;;1230:5485:152;;;;;;;5495:28;;;-1:-1:-1;;;;;5495:28:152;;;:::i;:::-;1230:5485;5491:390;;5056:3;5957:27;;5931:92;5957:27;5986:29;-1:-1:-1;;;;;5957:27:152;1230:5485;5957:27;;:::i;:::-;1230:5485;5986:29;1230:5485;5986:29;;;;:::i;5931:92::-;;;;;;;;;1230:5485;5931:92;;;5056:3;1230:5485;6037:25;;;;;;:::i;:::-;1230:5485;;5023:13;;5931:92;;1230:5485;5931:92;;;;;;;;;1230:5485;5931:92;;;:::i;:::-;;;1230:5485;;;;;;;5931:92;;;;;-1:-1:-1;5931:92:152;;5491:390;5622:28;1230:5485;-1:-1:-1;;;;;5303:85:152;5622:28;;;;;;:::i;:::-;1230:5485;;;;;;;;;;;5576:75;;5595:10;1230:5485;5576:75;;1230:5485;5382:4;1230:5485;;;;;;;;;5576:75;;;;;;;1230:5485;5576:75;;;5491:390;1230:5485;;;;5742:28;1230:5485;-1:-1:-1;;;;;1230:5485:152;5742:28;;;:::i;:::-;1230:5485;;;;;;;;;;;5717:54;;;1230:5485;5717:54;;1230:5485;;;;;;5717:54;;;;;;;1230:5485;5717:54;;;5491:390;1230:5485;;;;5837:28;;;:::i;:::-;5807:59;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;5807:59;;1230:5485;;5807:59;;1230:5485;;5807:59;1230:5485;5807:59;;;;;;;;;;-1:-1:-1;;;;;5957:27:152;5986:29;5807:59;5931:92;5807:59;1230:5485;5807:59;;;5491:390;;;;;;;;;;;5807:59;1230:5485;5807:59;;;:::i;:::-;;;;1230:5485;;;;;;;;;5717:54;;;;1230:5485;5717:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1230:5485;;;;;;;;;5576:75;;;;1230:5485;5576:75;;;;;;;;;:::i;:::-;;;;5303:85;;;;;1230:5485;5303:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;5038:16;;;;;5218:9;6087:20;;6083:163;;5018:1055;1230:5485;;;;;;;;;;;;;;;5156:27;1230:5485;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;;;;;;;;;;6083:163;1230:5485;5218:9;;6164:20;5218:9;;;6164:20;:::i;:::-;6141:10;:48;;;;:::i;:::-;;1230:5485;;;6083:163;;;4959:20;;;;1230:5485;4959:20;1230:5485;4959:20;;;;;;;:::i;:::-;;;;1230:5485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1230:5485:152;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1230:5485:152;;;;;-1:-1:-1;1230:5485:152;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1230:5485:152;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1230:5485:152;;;;;:::i;:::-;;;;-1:-1:-1;1230:5485:152;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0x1d612b419ca35b242706463c1e1eff3e9ef0ee6ca8e6cbc156f0dc4c108b1792\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://e86abdbd13d6ba560a59fa2efd23985e62ced2f0505fe4eac1a6f47c5169bdca\",\"dweb:/ipfs/QmdsJ9L1bFcuHi9UF517C8z5iciVRuWtt1zsN299rEX1Tq\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xfd65a6c942c3533c7253648d9a9b4c0d1f7dbb603d936509dd7f1e9db5fdbd3c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://b727142f3cb78f397c2858cee4045c73d082978fef4e47067b1424e8003689fd\",\"dweb:/ipfs/QmVvSwSKwKeRZuTYUvA4nXhvkCStmsXDU2eTwCoqKQKPRA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2\",\"dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5\",\"dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0x1d612b419ca35b242706463c1e1eff3e9ef0ee6ca8e6cbc156f0dc4c108b1792","urls":["bzz-raw://e86abdbd13d6ba560a59fa2efd23985e62ced2f0505fe4eac1a6f47c5169bdca","dweb:/ipfs/QmdsJ9L1bFcuHi9UF517C8z5iciVRuWtt1zsN299rEX1Tq"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xfd65a6c942c3533c7253648d9a9b4c0d1f7dbb603d936509dd7f1e9db5fdbd3c","urls":["bzz-raw://b727142f3cb78f397c2858cee4045c73d082978fef4e47067b1424e8003689fd","dweb:/ipfs/QmVvSwSKwKeRZuTYUvA4nXhvkCStmsXDU2eTwCoqKQKPRA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb","urls":["bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2","dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a","urls":["bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5","dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":76500,"exportedSymbols":{"BatchMulticall":[76499],"IMirror":[77171],"IRouter":[77796],"IWrappedVara":[77812]},"nodeType":"SourceUnit","src":"114:6602:152","nodes":[{"id":76117,"nodeType":"PragmaDirective","src":"114:24:152","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":76119,"nodeType":"ImportDirective","src":"140:40:152","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":76500,"sourceUnit":77172,"symbolAliases":[{"foreign":{"id":76118,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"148:7:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76121,"nodeType":"ImportDirective","src":"181:40:152","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":76500,"sourceUnit":77797,"symbolAliases":[{"foreign":{"id":76120,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77796,"src":"189:7:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76123,"nodeType":"ImportDirective","src":"222:50:152","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":76500,"sourceUnit":77813,"symbolAliases":[{"foreign":{"id":76122,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"230:12:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76499,"nodeType":"ContractDefinition","src":"1230:5485:152","nodes":[{"id":76131,"nodeType":"ErrorDefinition","src":"1352:58:152","nodes":[],"documentation":{"id":76125,"nodeType":"StructuredDocumentation","src":"1260:87:152","text":" @dev There is not enough value sent with transaction to cover calls."},"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"1358:17:152","parameters":{"id":76130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76127,"mutability":"mutable","name":"expected","nameLocation":"1384:8:152","nodeType":"VariableDeclaration","scope":76131,"src":"1376:16:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76126,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76129,"mutability":"mutable","name":"actual","nameLocation":"1402:6:152","nodeType":"VariableDeclaration","scope":76131,"src":"1394:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1394:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1375:34:152"}},{"id":76134,"nodeType":"ErrorDefinition","src":"1485:21:152","nodes":[],"documentation":{"id":76132,"nodeType":"StructuredDocumentation","src":"1416:64:152","text":" @dev Refunding excess value to sender failed."},"errorSelector":"f0c49d44","name":"RefundFailed","nameLocation":"1491:12:152","parameters":{"id":76133,"nodeType":"ParameterList","parameters":[],"src":"1503:2:152"}},{"id":76137,"nodeType":"ErrorDefinition","src":"1602:27:152","nodes":[],"documentation":{"id":76135,"nodeType":"StructuredDocumentation","src":"1512:85:152","text":" @dev Transferring WVARA token from sender to this contract failed."},"errorSelector":"7939f424","name":"TransferFromFailed","nameLocation":"1608:18:152","parameters":{"id":76136,"nodeType":"ParameterList","parameters":[],"src":"1626:2:152"}},{"id":76140,"nodeType":"ErrorDefinition","src":"1722:22:152","nodes":[],"documentation":{"id":76138,"nodeType":"StructuredDocumentation","src":"1635:82:152","text":" @dev Approving WVARA token for created program (Mirror) failed."},"errorSelector":"3e3f8f73","name":"ApproveFailed","nameLocation":"1728:13:152","parameters":{"id":76139,"nodeType":"ParameterList","parameters":[],"src":"1741:2:152"}},{"id":76146,"nodeType":"EventDefinition","src":"1867:51:152","nodes":[],"anonymous":false,"documentation":{"id":76141,"nodeType":"StructuredDocumentation","src":"1750:112:152","text":" @dev Emitted when batch of messages is sent. It contains array of message ids that were sent."},"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"1873:22:152","parameters":{"id":76145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76144,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"1906:10:152","nodeType":"VariableDeclaration","scope":76146,"src":"1896:20:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":76142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1896:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76143,"nodeType":"ArrayTypeName","src":"1896:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1895:22:152"}},{"id":76154,"nodeType":"StructDefinition","src":"2190:96:152","nodes":[],"canonicalName":"BatchMulticall.MessageCall","documentation":{"id":76147,"nodeType":"StructuredDocumentation","src":"1924:261:152","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":76149,"mutability":"mutable","name":"mirror","nameLocation":"2227:6:152","nodeType":"VariableDeclaration","scope":76154,"src":"2219:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76148,"name":"address","nodeType":"ElementaryTypeName","src":"2219:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76151,"mutability":"mutable","name":"payload","nameLocation":"2249:7:152","nodeType":"VariableDeclaration","scope":76154,"src":"2243:13:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":76150,"name":"bytes","nodeType":"ElementaryTypeName","src":"2243:5:152","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76153,"mutability":"mutable","name":"value","nameLocation":"2274:5:152","nodeType":"VariableDeclaration","scope":76154,"src":"2266:13:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76152,"name":"uint128","nodeType":"ElementaryTypeName","src":"2266:7:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"2197:11:152","scope":76499,"visibility":"public"},{"id":76166,"nodeType":"StructDefinition","src":"2962:160:152","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","documentation":{"id":76155,"nodeType":"StructuredDocumentation","src":"2292:665:152","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":76157,"mutability":"mutable","name":"codeId","nameLocation":"3005:6:152","nodeType":"VariableDeclaration","scope":76166,"src":"2997:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2997:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76159,"mutability":"mutable","name":"salt","nameLocation":"3029:4:152","nodeType":"VariableDeclaration","scope":76166,"src":"3021:12:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3021:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76161,"mutability":"mutable","name":"initPayload","nameLocation":"3049:11:152","nodeType":"VariableDeclaration","scope":76166,"src":"3043:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":76160,"name":"bytes","nodeType":"ElementaryTypeName","src":"3043:5:152","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76163,"mutability":"mutable","name":"initValue","nameLocation":"3078:9:152","nodeType":"VariableDeclaration","scope":76166,"src":"3070:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76162,"name":"uint128","nodeType":"ElementaryTypeName","src":"3070:7:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":76165,"mutability":"mutable","name":"topUpValue","nameLocation":"3105:10:152","nodeType":"VariableDeclaration","scope":76166,"src":"3097:18:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76164,"name":"uint128","nodeType":"ElementaryTypeName","src":"3097:7:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"2969:17:152","scope":76499,"visibility":"public"},{"id":76288,"nodeType":"FunctionDefinition","src":"3319:843:152","nodes":[],"body":{"id":76287,"nodeType":"Block","src":"3392:770:152","nodes":[],"statements":[{"assignments":[76178],"declarations":[{"constant":false,"id":76178,"mutability":"mutable","name":"messageIds","nameLocation":"3419:10:152","nodeType":"VariableDeclaration","scope":76287,"src":"3402:27:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":76176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3402:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76177,"nodeType":"ArrayTypeName","src":"3402:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":76185,"initialValue":{"arguments":[{"expression":{"id":76182,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3446:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3452:6:152","memberName":"length","nodeType":"MemberAccess","src":"3446:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3432:13:152","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":76179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3436:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76180,"nodeType":"ArrayTypeName","src":"3436:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":76184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3432:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3402:57:152"},{"assignments":[76187],"declarations":[{"constant":false,"id":76187,"mutability":"mutable","name":"consumed","nameLocation":"3478:8:152","nodeType":"VariableDeclaration","scope":76287,"src":"3470:16:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76186,"name":"uint256","nodeType":"ElementaryTypeName","src":"3470:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76188,"nodeType":"VariableDeclarationStatement","src":"3470:16:152"},{"body":{"id":76207,"nodeType":"Block","src":"3540:51:152","statements":[{"expression":{"id":76205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76200,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"3554:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":76201,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3566:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76203,"indexExpression":{"id":76202,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76190,"src":"3572:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3566:8:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":76204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3575:5:152","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":76153,"src":"3566:14:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3554:26:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76206,"nodeType":"ExpressionStatement","src":"3554:26:152"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76190,"src":"3517:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76194,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3521:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3527:6:152","memberName":"length","nodeType":"MemberAccess","src":"3521:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3517:16:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76208,"initializationExpression":{"assignments":[76190],"declarations":[{"constant":false,"id":76190,"mutability":"mutable","name":"i","nameLocation":"3510:1:152","nodeType":"VariableDeclaration","scope":76208,"src":"3502:9:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76189,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76192,"initialValue":{"hexValue":"30","id":76191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3514:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3502:13:152"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3535:3:152","subExpression":{"id":76197,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76190,"src":"3537:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76199,"nodeType":"ExpressionStatement","src":"3535:3:152"},"nodeType":"ForStatement","src":"3497:94:152"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76210,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"3609:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":76211,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3621:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3625:5:152","memberName":"value","nodeType":"MemberAccess","src":"3621:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3609:21:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":76215,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"3650:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76216,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3660:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3664:5:152","memberName":"value","nodeType":"MemberAccess","src":"3660:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76214,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"3632:17:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":76218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3632:38:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76209,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3601:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:70:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76220,"nodeType":"ExpressionStatement","src":"3601:70:152"},{"body":{"id":76256,"nodeType":"Block","src":"3725:208:152","statements":[{"assignments":[76234],"declarations":[{"constant":false,"id":76234,"mutability":"mutable","name":"messageCall","nameLocation":"3760:11:152","nodeType":"VariableDeclaration","scope":76256,"src":"3739:32:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":76233,"nodeType":"UserDefinedTypeName","pathNode":{"id":76232,"name":"MessageCall","nameLocations":["3739:11:152"],"nodeType":"IdentifierPath","referencedDeclaration":76154,"src":"3739:11:152"},"referencedDeclaration":76154,"src":"3739:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":76238,"initialValue":{"baseExpression":{"id":76235,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3774:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76237,"indexExpression":{"id":76236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76222,"src":"3780:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3774:8:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"3739:43:152"},{"expression":{"id":76254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76239,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76178,"src":"3797:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":76241,"indexExpression":{"id":76240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76222,"src":"3808:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3797:13:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76250,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"3895:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":76251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3907:7:152","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":76151,"src":"3895:19:152","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":76252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3916:5:152","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":76243,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"3837:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":76244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3849:6:152","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":76149,"src":"3837:18:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76242,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"3829:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77171_$","typeString":"type(contract IMirror)"}},"id":76245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":76246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3857:11:152","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":77111,"src":"3829:39:152","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":76249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":76247,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"3876:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":76248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3888:5:152","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":76153,"src":"3876:17:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"3829:65:152","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":76253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:93:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3797:125:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76255,"nodeType":"ExpressionStatement","src":"3797:125:152"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76222,"src":"3702:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76226,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"3706:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":76227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3712:6:152","memberName":"length","nodeType":"MemberAccess","src":"3706:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3702:16:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76257,"initializationExpression":{"assignments":[76222],"declarations":[{"constant":false,"id":76222,"mutability":"mutable","name":"i","nameLocation":"3695:1:152","nodeType":"VariableDeclaration","scope":76257,"src":"3687:9:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3687:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76224,"initialValue":{"hexValue":"30","id":76223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3699:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3687:13:152"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3720:3:152","subExpression":{"id":76229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76222,"src":"3722:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76231,"nodeType":"ExpressionStatement","src":"3720:3:152"},"nodeType":"ForStatement","src":"3682:251:152"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76258,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"3947:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76259,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3958:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3962:5:152","memberName":"value","nodeType":"MemberAccess","src":"3958:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3947:20:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76282,"nodeType":"IfStatement","src":"3943:163:152","trueBody":{"id":76281,"nodeType":"Block","src":"3969:137:152","statements":[{"assignments":[76263,null],"declarations":[{"constant":false,"id":76263,"mutability":"mutable","name":"success","nameLocation":"3989:7:152","nodeType":"VariableDeclaration","scope":76281,"src":"3984:12:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76262,"name":"bool","nodeType":"ElementaryTypeName","src":"3984:4:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":76274,"initialValue":{"arguments":[{"hexValue":"","id":76272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4046:2:152","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":76264,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4001:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4005:6:152","memberName":"sender","nodeType":"MemberAccess","src":"4001:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4012:4:152","memberName":"call","nodeType":"MemberAccess","src":"4001:15:152","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":76271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76267,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4024:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4028:5:152","memberName":"value","nodeType":"MemberAccess","src":"4024:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76269,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"4036:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4024:20:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4001:44:152","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":76273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4001:48:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3983:66:152"},{"expression":{"arguments":[{"id":76276,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76263,"src":"4071:7:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76277,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76134,"src":"4080:12:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4080:14:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76275,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4063:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4063:32:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76280,"nodeType":"ExpressionStatement","src":"4063:32:152"}]}},{"eventCall":{"arguments":[{"id":76284,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76178,"src":"4144:10:152","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":76283,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"4121:22:152","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":76285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4121:34:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76286,"nodeType":"EmitStatement","src":"4116:39:152"}]},"documentation":{"id":76167,"nodeType":"StructuredDocumentation","src":"3128:186:152","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":"3328:16:152","parameters":{"id":76172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76171,"mutability":"mutable","name":"calls","nameLocation":"3368:5:152","nodeType":"VariableDeclaration","scope":76288,"src":"3345:28:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":76169,"nodeType":"UserDefinedTypeName","pathNode":{"id":76168,"name":"MessageCall","nameLocations":["3345:11:152"],"nodeType":"IdentifierPath","referencedDeclaration":76154,"src":"3345:11:152"},"referencedDeclaration":76154,"src":"3345:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$76154_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":76170,"nodeType":"ArrayTypeName","src":"3345:13:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$76154_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"3344:30:152"},"returnParameters":{"id":76173,"nodeType":"ParameterList","parameters":[],"src":"3392:0:152"},"scope":76499,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76493,"nodeType":"FunctionDefinition","src":"4610:1684:152","nodes":[],"body":{"id":76492,"nodeType":"Block","src":"4780:1514:152","nodes":[],"statements":[{"assignments":[76309],"declarations":[{"constant":false,"id":76309,"mutability":"mutable","name":"programIds","nameLocation":"4807:10:152","nodeType":"VariableDeclaration","scope":76492,"src":"4790:27:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76307,"name":"address","nodeType":"ElementaryTypeName","src":"4790:7:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76308,"nodeType":"ArrayTypeName","src":"4790:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76316,"initialValue":{"arguments":[{"expression":{"id":76313,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"4834:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":76314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4840:6:152","memberName":"length","nodeType":"MemberAccess","src":"4834:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4820:13:152","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":76310,"name":"address","nodeType":"ElementaryTypeName","src":"4824:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76311,"nodeType":"ArrayTypeName","src":"4824:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4820:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4790:57:152"},{"assignments":[76321],"declarations":[{"constant":false,"id":76321,"mutability":"mutable","name":"messageIds","nameLocation":"4874:10:152","nodeType":"VariableDeclaration","scope":76492,"src":"4857:27:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":76319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4857:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76320,"nodeType":"ArrayTypeName","src":"4857:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":76328,"initialValue":{"arguments":[{"expression":{"id":76325,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"4901:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":76326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4907:6:152","memberName":"length","nodeType":"MemberAccess","src":"4901:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4887:13:152","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":76322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4891:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76323,"nodeType":"ArrayTypeName","src":"4891:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":76327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4887:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4857:57:152"},{"assignments":[76331],"declarations":[{"constant":false,"id":76331,"mutability":"mutable","name":"wvara","nameLocation":"4938:5:152","nodeType":"VariableDeclaration","scope":76492,"src":"4925:18:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"},"typeName":{"id":76330,"nodeType":"UserDefinedTypeName","pathNode":{"id":76329,"name":"IWrappedVara","nameLocations":["4925:12:152"],"nodeType":"IdentifierPath","referencedDeclaration":77812,"src":"4925:12:152"},"referencedDeclaration":77812,"src":"4925:12:152","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":76337,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76333,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76292,"src":"4959:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77796","typeString":"contract IRouter"}},"id":76334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4966:11:152","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":77468,"src":"4959:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4959:20:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76332,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"4946:12:152","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77812_$","typeString":"type(contract IWrappedVara)"}},"id":76336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4946:34:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"4925:55:152"},{"assignments":[76339],"declarations":[{"constant":false,"id":76339,"mutability":"mutable","name":"consumed","nameLocation":"4999:8:152","nodeType":"VariableDeclaration","scope":76492,"src":"4991:16:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76338,"name":"uint256","nodeType":"ElementaryTypeName","src":"4991:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76340,"nodeType":"VariableDeclarationStatement","src":"4991:16:152"},{"body":{"id":76461,"nodeType":"Block","src":"5061:1012:152","statements":[{"assignments":[76354],"declarations":[{"constant":false,"id":76354,"mutability":"mutable","name":"createProgramCall","nameLocation":"5102:17:152","nodeType":"VariableDeclaration","scope":76461,"src":"5075:44:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":76353,"nodeType":"UserDefinedTypeName","pathNode":{"id":76352,"name":"CreateProgramCall","nameLocations":["5075:17:152"],"nodeType":"IdentifierPath","referencedDeclaration":76166,"src":"5075:17:152"},"referencedDeclaration":76166,"src":"5075:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":76358,"initialValue":{"baseExpression":{"id":76355,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"5122:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":76357,"indexExpression":{"id":76356,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"5128:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5122:8:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"5075:55:152"},{"expression":{"id":76362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76359,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"5144:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":76360,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5156:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5174:9:152","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":76163,"src":"5156:27:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5144:39:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76363,"nodeType":"ExpressionStatement","src":"5144:39:152"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76365,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"5206:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":76366,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5218:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5222:5:152","memberName":"value","nodeType":"MemberAccess","src":"5218:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5206:21:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":76370,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"5247:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76371,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5257:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5261:5:152","memberName":"value","nodeType":"MemberAccess","src":"5257:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76369,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"5229:17:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":76373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5229:38:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5198:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5198:70:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76375,"nodeType":"ExpressionStatement","src":"5198:70:152"},{"assignments":[76377],"declarations":[{"constant":false,"id":76377,"mutability":"mutable","name":"programId","nameLocation":"5291:9:152","nodeType":"VariableDeclaration","scope":76461,"src":"5283:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76376,"name":"address","nodeType":"ElementaryTypeName","src":"5283:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76389,"initialValue":{"arguments":[{"expression":{"id":76380,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5324:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5342:6:152","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":76157,"src":"5324:24:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76382,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5350:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5368:4:152","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":76159,"src":"5350:22:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":76386,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5382:4:152","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$76499","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$76499","typeString":"contract BatchMulticall"}],"id":76385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5374:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76384,"name":"address","nodeType":"ElementaryTypeName","src":"5374:7:152","typeDescriptions":{}}},"id":76387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5374:13:152","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":76378,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76292,"src":"5303:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77796","typeString":"contract IRouter"}},"id":76379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5310:13:152","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":77722,"src":"5303:20:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":76388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5303:85:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5283:105:152"},{"expression":{"id":76394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76390,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76309,"src":"5402:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76392,"indexExpression":{"id":76391,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"5413:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5402:13:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76393,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"5418:9:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5402:25:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76395,"nodeType":"ExpressionStatement","src":"5402:25:152"},{"assignments":[76398],"declarations":[{"constant":false,"id":76398,"mutability":"mutable","name":"mirror","nameLocation":"5449:6:152","nodeType":"VariableDeclaration","scope":76461,"src":"5441:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"},"typeName":{"id":76397,"nodeType":"UserDefinedTypeName","pathNode":{"id":76396,"name":"IMirror","nameLocations":["5441:7:152"],"nodeType":"IdentifierPath","referencedDeclaration":77171,"src":"5441:7:152"},"referencedDeclaration":77171,"src":"5441:7:152","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"visibility":"internal"}],"id":76402,"initialValue":{"arguments":[{"id":76400,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"5466:9:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76399,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"5458:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77171_$","typeString":"type(contract IMirror)"}},"id":76401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5458:18:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"5441:35:152"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76403,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5495:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5513:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":76165,"src":"5495:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5526:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5495:32:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76442,"nodeType":"IfStatement","src":"5491:390:152","trueBody":{"id":76441,"nodeType":"Block","src":"5529:352:152","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76410,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5595:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5599:6:152","memberName":"sender","nodeType":"MemberAccess","src":"5595:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76414,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5615:4:152","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$76499","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$76499","typeString":"contract BatchMulticall"}],"id":76413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5607:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76412,"name":"address","nodeType":"ElementaryTypeName","src":"5607:7:152","typeDescriptions":{}}},"id":76415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5607:13:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76416,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5622:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5640:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":76165,"src":"5622:28:152","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":76408,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76331,"src":"5576:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":76409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5582:12:152","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"5576:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":76418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5576:75:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76419,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"5653:18:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:20:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76407,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5547:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5547:144:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76422,"nodeType":"ExpressionStatement","src":"5547:144:152"},{"expression":{"arguments":[{"arguments":[{"id":76426,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"5731:9:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76427,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5742:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5760:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":76165,"src":"5742:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76424,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76331,"src":"5717:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":76425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5723:7:152","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":2659,"src":"5717:13:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":76429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5717:54:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76430,"name":"ApproveFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"5773:13:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5773:15:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5709:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5709:80:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76433,"nodeType":"ExpressionStatement","src":"5709:80:152"},{"expression":{"arguments":[{"expression":{"id":76437,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5837:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5855:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":76165,"src":"5837:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":76434,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76398,"src":"5807:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":76436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5814:22:152","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":77131,"src":"5807:29:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":76439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5807:59:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76440,"nodeType":"ExpressionStatement","src":"5807:59:152"}]}},{"assignments":[76444],"declarations":[{"constant":false,"id":76444,"mutability":"mutable","name":"messageId","nameLocation":"5903:9:152","nodeType":"VariableDeclaration","scope":76461,"src":"5895:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5895:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76454,"initialValue":{"arguments":[{"expression":{"id":76450,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5986:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6004:11:152","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":76161,"src":"5986:29:152","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":76452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6017:5:152","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":76445,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76398,"src":"5931:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":76446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5938:11:152","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":77111,"src":"5931:18:152","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":76449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":76447,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"5957:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":76448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5975:9:152","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":76163,"src":"5957:27:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5931:54:152","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":76453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:92:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5895:128:152"},{"expression":{"id":76459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76455,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"6037:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":76457,"indexExpression":{"id":76456,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"6048:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6037:13:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76458,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76444,"src":"6053:9:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6037:25:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76460,"nodeType":"ExpressionStatement","src":"6037:25:152"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"5038:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76346,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"5042:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":76347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5048:6:152","memberName":"length","nodeType":"MemberAccess","src":"5042:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5038:16:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76462,"initializationExpression":{"assignments":[76342],"declarations":[{"constant":false,"id":76342,"mutability":"mutable","name":"i","nameLocation":"5031:1:152","nodeType":"VariableDeclaration","scope":76462,"src":"5023:9:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76341,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76344,"initialValue":{"hexValue":"30","id":76343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5035:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5023:13:152"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5056:3:152","subExpression":{"id":76349,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"5058:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76351,"nodeType":"ExpressionStatement","src":"5056:3:152"},"nodeType":"ForStatement","src":"5018:1055:152"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76463,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"6087:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76464,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6098:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6102:5:152","memberName":"value","nodeType":"MemberAccess","src":"6098:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6087:20:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76487,"nodeType":"IfStatement","src":"6083:163:152","trueBody":{"id":76486,"nodeType":"Block","src":"6109:137:152","statements":[{"assignments":[76468,null],"declarations":[{"constant":false,"id":76468,"mutability":"mutable","name":"success","nameLocation":"6129:7:152","nodeType":"VariableDeclaration","scope":76486,"src":"6124:12:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76467,"name":"bool","nodeType":"ElementaryTypeName","src":"6124:4:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":76479,"initialValue":{"arguments":[{"hexValue":"","id":76477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6186:2:152","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":76469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6141:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6145:6:152","memberName":"sender","nodeType":"MemberAccess","src":"6141:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6152:4:152","memberName":"call","nodeType":"MemberAccess","src":"6141:15:152","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":76476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76472,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6164:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6168:5:152","memberName":"value","nodeType":"MemberAccess","src":"6164:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76474,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76339,"src":"6176:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6164:20:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6141:44:152","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":76478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6141:48:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6123:66:152"},{"expression":{"arguments":[{"id":76481,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76468,"src":"6211:7:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76482,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76134,"src":"6220:12:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6220:14:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76480,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6203:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6203:32:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76485,"nodeType":"ExpressionStatement","src":"6203:32:152"}]}},{"expression":{"components":[{"id":76488,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76309,"src":"6264:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":76489,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"6276:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":76490,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6263:24:152","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":76304,"id":76491,"nodeType":"Return","src":"6256:31:152"}]},"documentation":{"id":76289,"nodeType":"StructuredDocumentation","src":"4168:437:152","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":"4619:18:152","parameters":{"id":76297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76292,"mutability":"mutable","name":"router","nameLocation":"4646:6:152","nodeType":"VariableDeclaration","scope":76493,"src":"4638:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77796","typeString":"contract IRouter"},"typeName":{"id":76291,"nodeType":"UserDefinedTypeName","pathNode":{"id":76290,"name":"IRouter","nameLocations":["4638:7:152"],"nodeType":"IdentifierPath","referencedDeclaration":77796,"src":"4638:7:152"},"referencedDeclaration":77796,"src":"4638:7:152","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77796","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":76296,"mutability":"mutable","name":"calls","nameLocation":"4683:5:152","nodeType":"VariableDeclaration","scope":76493,"src":"4654:34:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":76294,"nodeType":"UserDefinedTypeName","pathNode":{"id":76293,"name":"CreateProgramCall","nameLocations":["4654:17:152"],"nodeType":"IdentifierPath","referencedDeclaration":76166,"src":"4654:17:152"},"referencedDeclaration":76166,"src":"4654:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$76166_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":76295,"nodeType":"ArrayTypeName","src":"4654:19:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$76166_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"4637:52:152"},"returnParameters":{"id":76304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76493,"src":"4740:16:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76298,"name":"address","nodeType":"ElementaryTypeName","src":"4740:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76299,"nodeType":"ArrayTypeName","src":"4740:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76493,"src":"4758:16:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":76301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4758:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76302,"nodeType":"ArrayTypeName","src":"4758:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4739:36:152"},"scope":76499,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76498,"nodeType":"FunctionDefinition","src":"6684:29:152","nodes":[],"body":{"id":76497,"nodeType":"Block","src":"6711:2:152","nodes":[],"statements":[]},"documentation":{"id":76494,"nodeType":"StructuredDocumentation","src":"6300:379:152","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":76495,"nodeType":"ParameterList","parameters":[],"src":"6691:2:152"},"returnParameters":{"id":76496,"nodeType":"ParameterList","parameters":[],"src":"6711:0:152"},"scope":76499,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","documentation":{"id":76124,"nodeType":"StructuredDocumentation","src":"274:955:152","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":[76499],"name":"BatchMulticall","nameLocation":"1239:14:152","scope":76500,"usedErrors":[76131,76134,76137,76140],"usedEvents":[76146]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":152} \ No newline at end of file diff --git a/ethexe/ethereum/abi/DemoCaller.json b/ethexe/ethereum/abi/DemoCaller.json index 43d405416b1..08a9352a9d5 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":"238:1305:172:-:0;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;-1:-1:-1;;;;;238:1305:172;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:1305:172;;;;;;614:34;;238:1305;;;;;;;;614:34;238:1305;;;;;;;;;;;;;;;;;-1:-1:-1;238:1305:172;;;;;;-1:-1:-1;238:1305:172;;;;;-1:-1:-1;238:1305:172","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"238:1305:172:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;;;282:41;-1:-1:-1;;;;;238:1305:172;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;661:79;;:::i;:::-;238:1305;;;;;;;;;1252:28;238:1305;;;;;;;1252:28;238:1305;;;;;;;-1:-1:-1;;238:1305:172;;;;;;;;;;;;;;;;;1017:25;;;238:1305;;;;;;1017:25;;;;;;:::i;:::-;238:1305;;;;;;;;;;988:61;;238:1305;;988:61;;238:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:61;;238:1305;;;;;;;988:16;238:1305;988:61;;;;;;238:1305;988:61;;;238:1305;;;;;;;;;988:61;;238:1305;988:61;;238:1305;988:61;;;;;;238:1305;988:61;;;:::i;:::-;;;238:1305;;;;;;;988:61;;;;;-1:-1:-1;988:61:172;;;238:1305;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1491:43;661:79;238:1305;661:79;238:1305;661:79;;;:::i;:::-;238:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;1491:43;;;;238:1305;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;238:1305:172;;;;;-1:-1:-1;238:1305:172;746:158;827:16;-1:-1:-1;;;;;238:1305:172;805:10;:39;801:97;;746:158::o;801:97::-;867:20;;;;;;;","linkReferences":{},"immutableReferences":{"89375":[{"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.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54\",\"dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x842e473d73e594ced961a26890d62c8b134be06bd8926ebec648d22a947bc74b\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://077789711f31e9acc89a02b7bfbe304ed44dce4b64d4f5f88323a4cc206e8dfe\",\"dweb:/ipfs/QmPGeWPCYLKxKf4nt83nT3ckRgi6D2T9PWULhoxqGZfkSA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd\",\"dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f\"]},\"test/DemoCaller.sol\":{\"keccak256\":\"0xa9c197c211fd8e4f8883ed62392d9439e2f23d3d1b22aaac8c3b2e0f3d50deda\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://933ca6dbb8ad27483486e5447ad957f42c89f0581809ef9bbea3ee83ca200d9e\",\"dweb:/ipfs/Qmcf2wXok7zjVYppB7DCG9jSKGdCJWo76Wum5V9uKzbuPz\"]},\"test/IDemoCallbacks.sol\":{\"keccak256\":\"0xb7bcfb91b00f3d253c6ed45dc9b12c4a8991fa72769500f674c6bea1d67286b5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://87af68f30cf64d04bc24d793981639f2cb04f649f0ee6944bd0cbb5b198b6bfd\",\"dweb:/ipfs/QmbTrXKJ9s2SmozY3QHfFwTdwkxuB3JCNBiQBDc6gWHb6R\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"test/DemoCaller.sol":"DemoCaller"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1","urls":["bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54","dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0x842e473d73e594ced961a26890d62c8b134be06bd8926ebec648d22a947bc74b","urls":["bzz-raw://077789711f31e9acc89a02b7bfbe304ed44dce4b64d4f5f88323a4cc206e8dfe","dweb:/ipfs/QmPGeWPCYLKxKf4nt83nT3ckRgi6D2T9PWULhoxqGZfkSA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0","urls":["bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd","dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/DemoCaller.sol":{"keccak256":"0xa9c197c211fd8e4f8883ed62392d9439e2f23d3d1b22aaac8c3b2e0f3d50deda","urls":["bzz-raw://933ca6dbb8ad27483486e5447ad957f42c89f0581809ef9bbea3ee83ca200d9e","dweb:/ipfs/Qmcf2wXok7zjVYppB7DCG9jSKGdCJWo76Wum5V9uKzbuPz"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/IDemoCallbacks.sol":{"keccak256":"0xb7bcfb91b00f3d253c6ed45dc9b12c4a8991fa72769500f674c6bea1d67286b5","urls":["bzz-raw://87af68f30cf64d04bc24d793981639f2cb04f649f0ee6944bd0cbb5b198b6bfd","dweb:/ipfs/QmbTrXKJ9s2SmozY3QHfFwTdwkxuB3JCNBiQBDc6gWHb6R"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":89377,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":89379,"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":89485,"exportedSymbols":{"DemoCaller":[89484],"IDemoCallbacks":[89497],"IMirror":[77166]},"nodeType":"SourceUnit","src":"114:1430:172","nodes":[{"id":89366,"nodeType":"PragmaDirective","src":"114:24:172","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":89368,"nodeType":"ImportDirective","src":"140:40:172","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":89485,"sourceUnit":77167,"symbolAliases":[{"foreign":{"id":89367,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"148:7:172","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89370,"nodeType":"ImportDirective","src":"181:55:172","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":89485,"sourceUnit":89498,"symbolAliases":[{"foreign":{"id":89369,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89497,"src":"189:14:172","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89484,"nodeType":"ContractDefinition","src":"238:1305:172","nodes":[{"id":89375,"nodeType":"VariableDeclaration","src":"282:41:172","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"307:16:172","scope":89484,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"},"typeName":{"id":89374,"nodeType":"UserDefinedTypeName","pathNode":{"id":89373,"name":"IMirror","nameLocations":["282:7:172"],"nodeType":"IdentifierPath","referencedDeclaration":77166,"src":"282:7:172"},"referencedDeclaration":77166,"src":"282:7:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"visibility":"public"},{"id":89377,"nodeType":"VariableDeclaration","src":"330:35:172","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"342:23:172","scope":89484,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89376,"name":"bool","nodeType":"ElementaryTypeName","src":"330:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":89379,"nodeType":"VariableDeclaration","src":"371:30:172","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"383:18:172","scope":89484,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89378,"name":"bool","nodeType":"ElementaryTypeName","src":"371:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":89383,"nodeType":"EventDefinition","src":"408:43:172","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"414:17:172","parameters":{"id":89382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89381,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"440:9:172","nodeType":"VariableDeclaration","scope":89383,"src":"432:17:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"432:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"431:19:172"}},{"id":89391,"nodeType":"EventDefinition","src":"457:71:172","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"463:12:172","parameters":{"id":89390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89385,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"484:9:172","nodeType":"VariableDeclaration","scope":89391,"src":"476:17:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89384,"name":"bytes32","nodeType":"ElementaryTypeName","src":"476:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":89387,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"501:7:172","nodeType":"VariableDeclaration","scope":89391,"src":"495:13:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":89386,"name":"bytes","nodeType":"ElementaryTypeName","src":"495:5:172","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":89389,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"517:9:172","nodeType":"VariableDeclaration","scope":89391,"src":"510:16:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":89388,"name":"bytes4","nodeType":"ElementaryTypeName","src":"510:6:172","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"475:52:172"}},{"id":89393,"nodeType":"ErrorDefinition","src":"534:27:172","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"540:18:172","parameters":{"id":89392,"nodeType":"ParameterList","parameters":[],"src":"558:2:172"}},{"id":89404,"nodeType":"FunctionDefinition","src":"567:88:172","nodes":[],"body":{"id":89403,"nodeType":"Block","src":"604:51:172","nodes":[],"statements":[{"expression":{"id":89401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89399,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89375,"src":"614:16:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":89400,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89396,"src":"633:15:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"src":"614:34:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":89402,"nodeType":"ExpressionStatement","src":"614:34:172"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":89397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89396,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"587:15:172","nodeType":"VariableDeclaration","scope":89404,"src":"579:23:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"},"typeName":{"id":89395,"nodeType":"UserDefinedTypeName","pathNode":{"id":89394,"name":"IMirror","nameLocations":["579:7:172"],"nodeType":"IdentifierPath","referencedDeclaration":77166,"src":"579:7:172"},"referencedDeclaration":77166,"src":"579:7:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"visibility":"internal"}],"src":"578:25:172"},"returnParameters":{"id":89398,"nodeType":"ParameterList","parameters":[],"src":"604:0:172"},"scope":89484,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89411,"nodeType":"ModifierDefinition","src":"661:79:172","nodes":[],"body":{"id":89410,"nodeType":"Block","src":"691:49:172","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":89406,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89427,"src":"701:19:172","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":89407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:21:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89408,"nodeType":"ExpressionStatement","src":"701:21:172"},{"id":89409,"nodeType":"PlaceholderStatement","src":"732:1:172"}]},"name":"onlyVaraEthProgram","nameLocation":"670:18:172","parameters":{"id":89405,"nodeType":"ParameterList","parameters":[],"src":"688:2:172"},"virtual":false,"visibility":"internal"},{"id":89427,"nodeType":"FunctionDefinition","src":"746:158:172","nodes":[],"body":{"id":89426,"nodeType":"Block","src":"791:113:172","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":89420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":89414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"805:3:172","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":89415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"809:6:172","memberName":"sender","nodeType":"MemberAccess","src":"805:10:172","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":89418,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89375,"src":"827:16:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}],"id":89417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"819:7:172","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":89416,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:172","typeDescriptions":{}}},"id":89419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"819:25:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"805:39:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89425,"nodeType":"IfStatement","src":"801:97:172","trueBody":{"id":89424,"nodeType":"Block","src":"846:52:172","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":89421,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89393,"src":"867:18:172","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":89422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"867:20:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":89423,"nodeType":"RevertStatement","src":"860:27:172"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"755:19:172","parameters":{"id":89412,"nodeType":"ParameterList","parameters":[],"src":"774:2:172"},"returnParameters":{"id":89413,"nodeType":"ParameterList","parameters":[],"src":"791:0:172"},"scope":89484,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":89444,"nodeType":"FunctionDefinition","src":"910:146:172","nodes":[],"body":{"id":89443,"nodeType":"Block","src":"971:85:172","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":89438,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89429,"src":"1034:7:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":89436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1017:3:172","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":89437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1021:12:172","memberName":"encodePacked","nodeType":"MemberAccess","src":"1017:16:172","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":89439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:25:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":89440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1044:4:172","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":89434,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89375,"src":"988:16:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":89435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1005:11:172","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":77106,"src":"988:28:172","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":89441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:61:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":89433,"id":89442,"nodeType":"Return","src":"981:68:172"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"919:10:172","parameters":{"id":89430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89429,"mutability":"mutable","name":"isPanic","nameLocation":"935:7:172","nodeType":"VariableDeclaration","scope":89444,"src":"930:12:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89428,"name":"bool","nodeType":"ElementaryTypeName","src":"930:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"929:14:172"},"returnParameters":{"id":89433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89432,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89444,"src":"962:7:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"962:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"961:9:172"},"scope":89484,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":89461,"nodeType":"FunctionDefinition","src":"1121:166:172","nodes":[],"body":{"id":89460,"nodeType":"Block","src":"1196:91:172","nodes":[],"statements":[{"expression":{"id":89454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89452,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89377,"src":"1206:23:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":89453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1232:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1206:30:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89455,"nodeType":"ExpressionStatement","src":"1206:30:172"},{"eventCall":{"arguments":[{"id":89457,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89447,"src":"1270:9:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":89456,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89383,"src":"1252:17:172","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":89458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1252:28:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89459,"nodeType":"EmitStatement","src":"1247:33:172"}]},"baseFunctions":[89496],"documentation":{"id":89445,"nodeType":"StructuredDocumentation","src":"1062:54:172","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":89450,"kind":"modifierInvocation","modifierName":{"id":89449,"name":"onlyVaraEthProgram","nameLocations":["1177:18:172"],"nodeType":"IdentifierPath","referencedDeclaration":89411,"src":"1177:18:172"},"nodeType":"ModifierInvocation","src":"1177:18:172"}],"name":"replyOn_methodName","nameLocation":"1130:18:172","parameters":{"id":89448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89447,"mutability":"mutable","name":"messageId","nameLocation":"1157:9:172","nodeType":"VariableDeclaration","scope":89461,"src":"1149:17:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1149:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1148:19:172"},"returnParameters":{"id":89451,"nodeType":"ParameterList","parameters":[],"src":"1196:0:172"},"scope":89484,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":89483,"nodeType":"FunctionDefinition","src":"1293:248:172","nodes":[],"body":{"id":89482,"nodeType":"Block","src":"1440:101:172","nodes":[],"statements":[{"expression":{"id":89474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89472,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89379,"src":"1450:18:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":89473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1471:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1450:25:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89475,"nodeType":"ExpressionStatement","src":"1450:25:172"},{"eventCall":{"arguments":[{"id":89477,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89463,"src":"1504:9:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":89478,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89465,"src":"1515:7:172","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":89479,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89467,"src":"1524:9:172","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":89476,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89391,"src":"1491:12:172","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes4_$returns$__$","typeString":"function (bytes32,bytes memory,bytes4)"}},"id":89480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:43:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89481,"nodeType":"EmitStatement","src":"1486:48:172"}]},"baseFunctions":[76512],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":89470,"kind":"modifierInvocation","modifierName":{"id":89469,"name":"onlyVaraEthProgram","nameLocations":["1417:18:172"],"nodeType":"IdentifierPath","referencedDeclaration":89411,"src":"1417:18:172"},"nodeType":"ModifierInvocation","src":"1417:18:172"}],"name":"onErrorReply","nameLocation":"1302:12:172","parameters":{"id":89468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89463,"mutability":"mutable","name":"messageId","nameLocation":"1323:9:172","nodeType":"VariableDeclaration","scope":89483,"src":"1315:17:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1315:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":89465,"mutability":"mutable","name":"payload","nameLocation":"1349:7:172","nodeType":"VariableDeclaration","scope":89483,"src":"1334:22:172","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":89464,"name":"bytes","nodeType":"ElementaryTypeName","src":"1334:5:172","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":89467,"mutability":"mutable","name":"replyCode","nameLocation":"1365:9:172","nodeType":"VariableDeclaration","scope":89483,"src":"1358:16:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":89466,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1358:6:172","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1314:61:172"},"returnParameters":{"id":89471,"nodeType":"ParameterList","parameters":[],"src":"1440:0:172"},"scope":89484,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":89371,"name":"IDemoCallbacks","nameLocations":["261:14:172"],"nodeType":"IdentifierPath","referencedDeclaration":89497,"src":"261:14:172"},"id":89372,"nodeType":"InheritanceSpecifier","src":"261:14:172"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[89484,89497,76513],"name":"DemoCaller","nameLocation":"247:10:172","scope":89485,"usedErrors":[89393],"usedEvents":[89383,89391]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":172} \ 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":"238:1305:172:-:0;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;-1:-1:-1;;;;;238:1305:172;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:1305:172;;;;;;614:34;;238:1305;;;;;;;;614:34;238:1305;;;;;;;;;;;;;;;;;-1:-1:-1;238:1305:172;;;;;;-1:-1:-1;238:1305:172;;;;;-1:-1:-1;238:1305:172","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"238:1305:172:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;;;282:41;-1:-1:-1;;;;;238:1305:172;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;661:79;;:::i;:::-;238:1305;;;;;;;;;1252:28;238:1305;;;;;;;1252:28;238:1305;;;;;;;-1:-1:-1;;238:1305:172;;;;;;;;;;;;;;;;;1017:25;;;238:1305;;;;;;1017:25;;;;;;:::i;:::-;238:1305;;;;;;;;;;988:61;;238:1305;;988:61;;238:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:61;;238:1305;;;;;;;988:16;238:1305;988:61;;;;;;238:1305;988:61;;;238:1305;;;;;;;;;988:61;;238:1305;988:61;;238:1305;988:61;;;;;;238:1305;988:61;;;:::i;:::-;;;238:1305;;;;;;;988:61;;;;;-1:-1:-1;988:61:172;;;238:1305;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1491:43;661:79;238:1305;661:79;238:1305;661:79;;;:::i;:::-;238:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:172;;;1491:43;;;;238:1305;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;238:1305:172;;;;;-1:-1:-1;238:1305:172;746:158;827:16;-1:-1:-1;;;;;238:1305:172;805:10;:39;801:97;;746:158::o;801:97::-;867:20;;;;;;;","linkReferences":{},"immutableReferences":{"89611":[{"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.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54\",\"dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xfd65a6c942c3533c7253648d9a9b4c0d1f7dbb603d936509dd7f1e9db5fdbd3c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://b727142f3cb78f397c2858cee4045c73d082978fef4e47067b1424e8003689fd\",\"dweb:/ipfs/QmVvSwSKwKeRZuTYUvA4nXhvkCStmsXDU2eTwCoqKQKPRA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5\",\"dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY\"]},\"test/DemoCaller.sol\":{\"keccak256\":\"0xa9c197c211fd8e4f8883ed62392d9439e2f23d3d1b22aaac8c3b2e0f3d50deda\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://933ca6dbb8ad27483486e5447ad957f42c89f0581809ef9bbea3ee83ca200d9e\",\"dweb:/ipfs/Qmcf2wXok7zjVYppB7DCG9jSKGdCJWo76Wum5V9uKzbuPz\"]},\"test/IDemoCallbacks.sol\":{\"keccak256\":\"0xb7bcfb91b00f3d253c6ed45dc9b12c4a8991fa72769500f674c6bea1d67286b5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://87af68f30cf64d04bc24d793981639f2cb04f649f0ee6944bd0cbb5b198b6bfd\",\"dweb:/ipfs/QmbTrXKJ9s2SmozY3QHfFwTdwkxuB3JCNBiQBDc6gWHb6R\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"test/DemoCaller.sol":"DemoCaller"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1","urls":["bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54","dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xfd65a6c942c3533c7253648d9a9b4c0d1f7dbb603d936509dd7f1e9db5fdbd3c","urls":["bzz-raw://b727142f3cb78f397c2858cee4045c73d082978fef4e47067b1424e8003689fd","dweb:/ipfs/QmVvSwSKwKeRZuTYUvA4nXhvkCStmsXDU2eTwCoqKQKPRA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a","urls":["bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5","dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/DemoCaller.sol":{"keccak256":"0xa9c197c211fd8e4f8883ed62392d9439e2f23d3d1b22aaac8c3b2e0f3d50deda","urls":["bzz-raw://933ca6dbb8ad27483486e5447ad957f42c89f0581809ef9bbea3ee83ca200d9e","dweb:/ipfs/Qmcf2wXok7zjVYppB7DCG9jSKGdCJWo76Wum5V9uKzbuPz"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/IDemoCallbacks.sol":{"keccak256":"0xb7bcfb91b00f3d253c6ed45dc9b12c4a8991fa72769500f674c6bea1d67286b5","urls":["bzz-raw://87af68f30cf64d04bc24d793981639f2cb04f649f0ee6944bd0cbb5b198b6bfd","dweb:/ipfs/QmbTrXKJ9s2SmozY3QHfFwTdwkxuB3JCNBiQBDc6gWHb6R"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":89613,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":89615,"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":89721,"exportedSymbols":{"DemoCaller":[89720],"IDemoCallbacks":[89733],"IMirror":[77171]},"nodeType":"SourceUnit","src":"114:1430:172","nodes":[{"id":89602,"nodeType":"PragmaDirective","src":"114:24:172","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":89604,"nodeType":"ImportDirective","src":"140:40:172","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":89721,"sourceUnit":77172,"symbolAliases":[{"foreign":{"id":89603,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"148:7:172","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89606,"nodeType":"ImportDirective","src":"181:55:172","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":89721,"sourceUnit":89734,"symbolAliases":[{"foreign":{"id":89605,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89733,"src":"189:14:172","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89720,"nodeType":"ContractDefinition","src":"238:1305:172","nodes":[{"id":89611,"nodeType":"VariableDeclaration","src":"282:41:172","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"307:16:172","scope":89720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"},"typeName":{"id":89610,"nodeType":"UserDefinedTypeName","pathNode":{"id":89609,"name":"IMirror","nameLocations":["282:7:172"],"nodeType":"IdentifierPath","referencedDeclaration":77171,"src":"282:7:172"},"referencedDeclaration":77171,"src":"282:7:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"visibility":"public"},{"id":89613,"nodeType":"VariableDeclaration","src":"330:35:172","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"342:23:172","scope":89720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89612,"name":"bool","nodeType":"ElementaryTypeName","src":"330:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":89615,"nodeType":"VariableDeclaration","src":"371:30:172","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"383:18:172","scope":89720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89614,"name":"bool","nodeType":"ElementaryTypeName","src":"371:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":89619,"nodeType":"EventDefinition","src":"408:43:172","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"414:17:172","parameters":{"id":89618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89617,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"440:9:172","nodeType":"VariableDeclaration","scope":89619,"src":"432:17:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"432:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"431:19:172"}},{"id":89627,"nodeType":"EventDefinition","src":"457:71:172","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"463:12:172","parameters":{"id":89626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89621,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"484:9:172","nodeType":"VariableDeclaration","scope":89627,"src":"476:17:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"476:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":89623,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"501:7:172","nodeType":"VariableDeclaration","scope":89627,"src":"495:13:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":89622,"name":"bytes","nodeType":"ElementaryTypeName","src":"495:5:172","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":89625,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"517:9:172","nodeType":"VariableDeclaration","scope":89627,"src":"510:16:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":89624,"name":"bytes4","nodeType":"ElementaryTypeName","src":"510:6:172","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"475:52:172"}},{"id":89629,"nodeType":"ErrorDefinition","src":"534:27:172","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"540:18:172","parameters":{"id":89628,"nodeType":"ParameterList","parameters":[],"src":"558:2:172"}},{"id":89640,"nodeType":"FunctionDefinition","src":"567:88:172","nodes":[],"body":{"id":89639,"nodeType":"Block","src":"604:51:172","nodes":[],"statements":[{"expression":{"id":89637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89635,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89611,"src":"614:16:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":89636,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89632,"src":"633:15:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"src":"614:34:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":89638,"nodeType":"ExpressionStatement","src":"614:34:172"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":89633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89632,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"587:15:172","nodeType":"VariableDeclaration","scope":89640,"src":"579:23:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"},"typeName":{"id":89631,"nodeType":"UserDefinedTypeName","pathNode":{"id":89630,"name":"IMirror","nameLocations":["579:7:172"],"nodeType":"IdentifierPath","referencedDeclaration":77171,"src":"579:7:172"},"referencedDeclaration":77171,"src":"579:7:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"visibility":"internal"}],"src":"578:25:172"},"returnParameters":{"id":89634,"nodeType":"ParameterList","parameters":[],"src":"604:0:172"},"scope":89720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89647,"nodeType":"ModifierDefinition","src":"661:79:172","nodes":[],"body":{"id":89646,"nodeType":"Block","src":"691:49:172","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":89642,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89663,"src":"701:19:172","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":89643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:21:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89644,"nodeType":"ExpressionStatement","src":"701:21:172"},{"id":89645,"nodeType":"PlaceholderStatement","src":"732:1:172"}]},"name":"onlyVaraEthProgram","nameLocation":"670:18:172","parameters":{"id":89641,"nodeType":"ParameterList","parameters":[],"src":"688:2:172"},"virtual":false,"visibility":"internal"},{"id":89663,"nodeType":"FunctionDefinition","src":"746:158:172","nodes":[],"body":{"id":89662,"nodeType":"Block","src":"791:113:172","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":89656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":89650,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"805:3:172","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":89651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"809:6:172","memberName":"sender","nodeType":"MemberAccess","src":"805:10:172","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":89654,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89611,"src":"827:16:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}],"id":89653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"819:7:172","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":89652,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:172","typeDescriptions":{}}},"id":89655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"819:25:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"805:39:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89661,"nodeType":"IfStatement","src":"801:97:172","trueBody":{"id":89660,"nodeType":"Block","src":"846:52:172","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":89657,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89629,"src":"867:18:172","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":89658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"867:20:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":89659,"nodeType":"RevertStatement","src":"860:27:172"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"755:19:172","parameters":{"id":89648,"nodeType":"ParameterList","parameters":[],"src":"774:2:172"},"returnParameters":{"id":89649,"nodeType":"ParameterList","parameters":[],"src":"791:0:172"},"scope":89720,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":89680,"nodeType":"FunctionDefinition","src":"910:146:172","nodes":[],"body":{"id":89679,"nodeType":"Block","src":"971:85:172","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":89674,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89665,"src":"1034:7:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":89672,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1017:3:172","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":89673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1021:12:172","memberName":"encodePacked","nodeType":"MemberAccess","src":"1017:16:172","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":89675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:25:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":89676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1044:4:172","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":89670,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89611,"src":"988:16:172","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":89671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1005:11:172","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":77111,"src":"988:28:172","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":89677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:61:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":89669,"id":89678,"nodeType":"Return","src":"981:68:172"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"919:10:172","parameters":{"id":89666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89665,"mutability":"mutable","name":"isPanic","nameLocation":"935:7:172","nodeType":"VariableDeclaration","scope":89680,"src":"930:12:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89664,"name":"bool","nodeType":"ElementaryTypeName","src":"930:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"929:14:172"},"returnParameters":{"id":89669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89680,"src":"962:7:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"962:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"961:9:172"},"scope":89720,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":89697,"nodeType":"FunctionDefinition","src":"1121:166:172","nodes":[],"body":{"id":89696,"nodeType":"Block","src":"1196:91:172","nodes":[],"statements":[{"expression":{"id":89690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89688,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89613,"src":"1206:23:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":89689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1232:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1206:30:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89691,"nodeType":"ExpressionStatement","src":"1206:30:172"},{"eventCall":{"arguments":[{"id":89693,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89683,"src":"1270:9:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":89692,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89619,"src":"1252:17:172","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":89694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1252:28:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89695,"nodeType":"EmitStatement","src":"1247:33:172"}]},"baseFunctions":[89732],"documentation":{"id":89681,"nodeType":"StructuredDocumentation","src":"1062:54:172","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":89686,"kind":"modifierInvocation","modifierName":{"id":89685,"name":"onlyVaraEthProgram","nameLocations":["1177:18:172"],"nodeType":"IdentifierPath","referencedDeclaration":89647,"src":"1177:18:172"},"nodeType":"ModifierInvocation","src":"1177:18:172"}],"name":"replyOn_methodName","nameLocation":"1130:18:172","parameters":{"id":89684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89683,"mutability":"mutable","name":"messageId","nameLocation":"1157:9:172","nodeType":"VariableDeclaration","scope":89697,"src":"1149:17:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89682,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1149:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1148:19:172"},"returnParameters":{"id":89687,"nodeType":"ParameterList","parameters":[],"src":"1196:0:172"},"scope":89720,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":89719,"nodeType":"FunctionDefinition","src":"1293:248:172","nodes":[],"body":{"id":89718,"nodeType":"Block","src":"1440:101:172","nodes":[],"statements":[{"expression":{"id":89710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89708,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89615,"src":"1450:18:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":89709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1471:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1450:25:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89711,"nodeType":"ExpressionStatement","src":"1450:25:172"},{"eventCall":{"arguments":[{"id":89713,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89699,"src":"1504:9:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":89714,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89701,"src":"1515:7:172","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":89715,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89703,"src":"1524:9:172","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":89712,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89627,"src":"1491:12:172","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes4_$returns$__$","typeString":"function (bytes32,bytes memory,bytes4)"}},"id":89716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:43:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89717,"nodeType":"EmitStatement","src":"1486:48:172"}]},"baseFunctions":[76512],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":89706,"kind":"modifierInvocation","modifierName":{"id":89705,"name":"onlyVaraEthProgram","nameLocations":["1417:18:172"],"nodeType":"IdentifierPath","referencedDeclaration":89647,"src":"1417:18:172"},"nodeType":"ModifierInvocation","src":"1417:18:172"}],"name":"onErrorReply","nameLocation":"1302:12:172","parameters":{"id":89704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89699,"mutability":"mutable","name":"messageId","nameLocation":"1323:9:172","nodeType":"VariableDeclaration","scope":89719,"src":"1315:17:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1315:7:172","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":89701,"mutability":"mutable","name":"payload","nameLocation":"1349:7:172","nodeType":"VariableDeclaration","scope":89719,"src":"1334:22:172","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":89700,"name":"bytes","nodeType":"ElementaryTypeName","src":"1334:5:172","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":89703,"mutability":"mutable","name":"replyCode","nameLocation":"1365:9:172","nodeType":"VariableDeclaration","scope":89719,"src":"1358:16:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":89702,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1358:6:172","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1314:61:172"},"returnParameters":{"id":89707,"nodeType":"ParameterList","parameters":[],"src":"1440:0:172"},"scope":89720,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":89607,"name":"IDemoCallbacks","nameLocations":["261:14:172"],"nodeType":"IdentifierPath","referencedDeclaration":89733,"src":"261:14:172"},"id":89608,"nodeType":"InheritanceSpecifier","src":"261:14:172"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[89720,89733,76513],"name":"DemoCaller","nameLocation":"247:10:172","scope":89721,"usedErrors":[89629],"usedEvents":[89619,89627]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":172} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Gear.json b/ethexe/ethereum/abi/Gear.json index 681cabdbd04..03d85a77ec8 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":"1555:33211:168:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1555:33211:168:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1555:33211:168;;;;;;;2111:1;1555:33211;;;;;;;;;;-1:-1:-1;;1555:33211:168;;;;;;;1895:13;1555:33211;;;;;;-1:-1:-1;;1555:33211:168;;;;;;;2423:18;1555:33211;;;;;;-1:-1:-1;;1555:33211:168;;;;;2243:1;1555:33211;;;","linkReferences":{}},"methodIdentifiers":{"COMPUTATION_THRESHOLD()":"7841919a","VALIDATORS_THRESHOLD_DENOMINATOR()":"0279472c","VALIDATORS_THRESHOLD_NUMERATOR()":"db3fe3f1","WVARA_PER_SECOND()":"2c184e1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd\",\"dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/libraries/Gear.sol":"Gear"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0","urls":["bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd","dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":87133,"exportedSymbols":{"ECDSA":[9016],"FROST":[62425],"Gear":[87132],"Hashes":[62943],"IRouter":[77791],"MessageHashUtils":[10300],"SafeCast":[13734],"SlotDerivation":[6724],"Time":[18907],"TransientSlot":[8557]},"nodeType":"SourceUnit","src":"114:34653:168","nodes":[{"id":85860,"nodeType":"PragmaDirective","src":"114:24:168","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":85862,"nodeType":"ImportDirective","src":"140:80:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":87133,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":85861,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"148:14:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85864,"nodeType":"ImportDirective","src":"221:78:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol","file":"@openzeppelin/contracts/utils/TransientSlot.sol","nameLocation":"-1:-1:-1","scope":87133,"sourceUnit":8558,"symbolAliases":[{"foreign":{"id":85863,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"229:13:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85866,"nodeType":"ImportDirective","src":"300:75:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":87133,"sourceUnit":9017,"symbolAliases":[{"foreign":{"id":85865,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"308:5:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85868,"nodeType":"ImportDirective","src":"376:97:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":87133,"sourceUnit":10301,"symbolAliases":[{"foreign":{"id":85867,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10300,"src":"384:16:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85870,"nodeType":"ImportDirective","src":"474:73:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","nameLocation":"-1:-1:-1","scope":87133,"sourceUnit":13735,"symbolAliases":[{"foreign":{"id":85869,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"482:8:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85872,"nodeType":"ImportDirective","src":"548:66:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":87133,"sourceUnit":18908,"symbolAliases":[{"foreign":{"id":85871,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"556:4:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85874,"nodeType":"ImportDirective","src":"615:52:168","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":87133,"sourceUnit":62426,"symbolAliases":[{"foreign":{"id":85873,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62425,"src":"623:5:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85876,"nodeType":"ImportDirective","src":"668:73:168","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":87133,"sourceUnit":62944,"symbolAliases":[{"foreign":{"id":85875,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"676:6:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85878,"nodeType":"ImportDirective","src":"742:40:168","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":87133,"sourceUnit":77792,"symbolAliases":[{"foreign":{"id":85877,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77791,"src":"750:7:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87132,"nodeType":"ContractDefinition","src":"1555:33211:168","nodes":[{"id":85882,"nodeType":"UsingForDirective","src":"1574:24:168","nodes":[],"global":false,"libraryName":{"id":85880,"name":"ECDSA","nameLocations":["1580:5:168"],"nodeType":"IdentifierPath","referencedDeclaration":9016,"src":"1580:5:168"},"typeName":{"id":85881,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1590:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":85885,"nodeType":"UsingForDirective","src":"1603:35:168","nodes":[],"global":false,"libraryName":{"id":85883,"name":"MessageHashUtils","nameLocations":["1609:16:168"],"nodeType":"IdentifierPath","referencedDeclaration":10300,"src":"1609:16:168"},"typeName":{"id":85884,"name":"address","nodeType":"ElementaryTypeName","src":"1630:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":85887,"nodeType":"UsingForDirective","src":"1644:26:168","nodes":[],"global":false,"libraryName":{"id":85886,"name":"TransientSlot","nameLocations":["1650:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":8557,"src":"1650:13:168"}},{"id":85889,"nodeType":"UsingForDirective","src":"1675:27:168","nodes":[],"global":false,"libraryName":{"id":85888,"name":"SlotDerivation","nameLocations":["1681:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":6724,"src":"1681:14:168"}},{"id":85893,"nodeType":"VariableDeclaration","src":"1848:60:168","nodes":[],"constant":true,"documentation":{"id":85890,"nodeType":"StructuredDocumentation","src":"1731:112:168","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":"1871:21:168","scope":87132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":85891,"name":"uint64","nodeType":"ElementaryTypeName","src":"1848:6:168","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":85892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1895:13:168","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"visibility":"public"},{"id":85897,"nodeType":"VariableDeclaration","src":"2054:58:168","nodes":[],"constant":true,"documentation":{"id":85894,"nodeType":"StructuredDocumentation","src":"1915:134:168","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":"2078:30:168","scope":87132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85895,"name":"uint128","nodeType":"ElementaryTypeName","src":"2054:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":85896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2111:1:168","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":85901,"nodeType":"VariableDeclaration","src":"2184:60:168","nodes":[],"constant":true,"documentation":{"id":85898,"nodeType":"StructuredDocumentation","src":"2118:61:168","text":" @dev The validators threshold denominator."},"functionSelector":"0279472c","mutability":"constant","name":"VALIDATORS_THRESHOLD_DENOMINATOR","nameLocation":"2208:32:168","scope":87132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85899,"name":"uint128","nodeType":"ElementaryTypeName","src":"2184:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":85900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2243:1:168","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"public"},{"id":85905,"nodeType":"VariableDeclaration","src":"2380:61:168","nodes":[],"constant":true,"documentation":{"id":85902,"nodeType":"StructuredDocumentation","src":"2251:124:168","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":"2404:16:168","scope":87132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85903,"name":"uint128","nodeType":"ElementaryTypeName","src":"2380:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":85904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2423:18:168","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000_by_1","typeString":"int_const 10000000000000"},"value":"10_000_000_000_000"},"visibility":"public"},{"id":85908,"nodeType":"ErrorDefinition","src":"2568:32:168","nodes":[],"documentation":{"id":85906,"nodeType":"StructuredDocumentation","src":"2468:95:168","text":" @dev Thrown when signature validation is attempted before the genesis block."},"errorSelector":"00f4462b","name":"ValidationBeforeGenesis","nameLocation":"2574:23:168","parameters":{"id":85907,"nodeType":"ParameterList","parameters":[],"src":"2597:2:168"}},{"id":85911,"nodeType":"ErrorDefinition","src":"2692:38:168","nodes":[],"documentation":{"id":85909,"nodeType":"StructuredDocumentation","src":"2606:81:168","text":" @dev Thrown when the timestamp is older than the previous era."},"errorSelector":"8d763ca0","name":"TimestampOlderThanPreviousEra","nameLocation":"2698:29:168","parameters":{"id":85910,"nodeType":"ParameterList","parameters":[],"src":"2727:2:168"}},{"id":85914,"nodeType":"ErrorDefinition","src":"2808:26:168","nodes":[],"documentation":{"id":85912,"nodeType":"StructuredDocumentation","src":"2736:67:168","text":" @dev Thrown when the timestamp is in the future."},"errorSelector":"47860b97","name":"TimestampInFuture","nameLocation":"2814:17:168","parameters":{"id":85913,"nodeType":"ParameterList","parameters":[],"src":"2831:2:168"}},{"id":85917,"nodeType":"ErrorDefinition","src":"2923:35:168","nodes":[],"documentation":{"id":85915,"nodeType":"StructuredDocumentation","src":"2840:78:168","text":" @dev Thrown when the number of FROST signatures is invalid."},"errorSelector":"60a1ea77","name":"InvalidFrostSignatureCount","nameLocation":"2929:26:168","parameters":{"id":85916,"nodeType":"ParameterList","parameters":[],"src":"2955:2:168"}},{"id":85920,"nodeType":"ErrorDefinition","src":"3077:36:168","nodes":[],"documentation":{"id":85918,"nodeType":"StructuredDocumentation","src":"2964:108:168","text":" @dev Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes."},"errorSelector":"2ce466bf","name":"InvalidFrostSignatureLength","nameLocation":"3083:27:168","parameters":{"id":85919,"nodeType":"ParameterList","parameters":[],"src":"3110:2:168"}},{"id":85923,"nodeType":"ErrorDefinition","src":"3291:36:168","nodes":[],"documentation":{"id":85921,"nodeType":"StructuredDocumentation","src":"3119:167:168","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":"3297:27:168","parameters":{"id":85922,"nodeType":"ParameterList","parameters":[],"src":"3324:2:168"}},{"id":85926,"nodeType":"ErrorDefinition","src":"3481:39:168","nodes":[],"documentation":{"id":85924,"nodeType":"StructuredDocumentation","src":"3333:143:168","text":" @dev Thrown when no validators are found for a given timestamp.\n Should never happen, because the implementation."},"errorSelector":"98715d2a","name":"ValidatorsNotFoundForTimestamp","nameLocation":"3487:30:168","parameters":{"id":85925,"nodeType":"ParameterList","parameters":[],"src":"3517:2:168"}},{"id":85932,"nodeType":"StructDefinition","src":"3808:72:168","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":85927,"nodeType":"StructuredDocumentation","src":"3547:256:168","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":85929,"mutability":"mutable","name":"x","nameLocation":"3853:1:168","nodeType":"VariableDeclaration","scope":85932,"src":"3845:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85928,"name":"uint256","nodeType":"ElementaryTypeName","src":"3845:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85931,"mutability":"mutable","name":"y","nameLocation":"3872:1:168","nodeType":"VariableDeclaration","scope":85932,"src":"3864:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"3815:19:168","scope":87132,"visibility":"public"},{"id":85953,"nodeType":"StructDefinition","src":"3949:1200:168","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":85933,"nodeType":"StructuredDocumentation","src":"3886:58:168","text":" @dev Represents validators information."},"members":[{"constant":false,"id":85937,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4339:19:168","nodeType":"VariableDeclaration","scope":85953,"src":"4319:39:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":85936,"nodeType":"UserDefinedTypeName","pathNode":{"id":85935,"name":"AggregatedPublicKey","nameLocations":["4319:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":85932,"src":"4319:19:168"},"referencedDeclaration":85932,"src":"4319:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":85940,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4666:40:168","nodeType":"VariableDeclaration","scope":85953,"src":"4658:48:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85939,"name":"address","nodeType":"ElementaryTypeName","src":"4658:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85945,"mutability":"mutable","name":"map","nameLocation":"4924:3:168","nodeType":"VariableDeclaration","scope":85953,"src":"4899:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":85944,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":85942,"name":"address","nodeType":"ElementaryTypeName","src":"4907:7:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4899:24:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":85943,"name":"bool","nodeType":"ElementaryTypeName","src":"4918:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":85949,"mutability":"mutable","name":"list","nameLocation":"5016:4:168","nodeType":"VariableDeclaration","scope":85953,"src":"5006:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":85947,"name":"address","nodeType":"ElementaryTypeName","src":"5006:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":85948,"nodeType":"ArrayTypeName","src":"5006:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":85952,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5126:16:168","nodeType":"VariableDeclaration","scope":85953,"src":"5118:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85951,"name":"uint256","nodeType":"ElementaryTypeName","src":"5118:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"3956:10:168","scope":87132,"visibility":"public"},{"id":85965,"nodeType":"StructDefinition","src":"5226:194:168","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":85954,"nodeType":"StructuredDocumentation","src":"5155:66:168","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":85957,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5278:19:168","nodeType":"VariableDeclaration","scope":85965,"src":"5258:39:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":85956,"nodeType":"UserDefinedTypeName","pathNode":{"id":85955,"name":"AggregatedPublicKey","nameLocations":["5258:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":85932,"src":"5258:19:168"},"referencedDeclaration":85932,"src":"5258:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":85959,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5315:40:168","nodeType":"VariableDeclaration","scope":85965,"src":"5307:48:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85958,"name":"address","nodeType":"ElementaryTypeName","src":"5307:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85962,"mutability":"mutable","name":"list","nameLocation":"5375:4:168","nodeType":"VariableDeclaration","scope":85965,"src":"5365:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":85960,"name":"address","nodeType":"ElementaryTypeName","src":"5365:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":85961,"nodeType":"ArrayTypeName","src":"5365:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":85964,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5397:16:168","nodeType":"VariableDeclaration","scope":85965,"src":"5389:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85963,"name":"uint256","nodeType":"ElementaryTypeName","src":"5389:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5233:14:168","scope":87132,"visibility":"public"},{"id":85976,"nodeType":"StructDefinition","src":"5491:353:168","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":85966,"nodeType":"StructuredDocumentation","src":"5426:60:168","text":" @dev Represents address book information."},"members":[{"constant":false,"id":85969,"mutability":"mutable","name":"mirror","nameLocation":"5606:6:168","nodeType":"VariableDeclaration","scope":85976,"src":"5598:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85968,"name":"address","nodeType":"ElementaryTypeName","src":"5598:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85972,"mutability":"mutable","name":"wrappedVara","nameLocation":"5713:11:168","nodeType":"VariableDeclaration","scope":85976,"src":"5705:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85971,"name":"address","nodeType":"ElementaryTypeName","src":"5705:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85975,"mutability":"mutable","name":"middleware","nameLocation":"5827:10:168","nodeType":"VariableDeclaration","scope":85976,"src":"5819:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85974,"name":"address","nodeType":"ElementaryTypeName","src":"5819:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5498:11:168","scope":87132,"visibility":"public"},{"id":85984,"nodeType":"StructDefinition","src":"5906:248:168","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":85977,"nodeType":"StructuredDocumentation","src":"5850:51:168","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":85980,"mutability":"mutable","name":"id","nameLocation":"6050:2:168","nodeType":"VariableDeclaration","scope":85984,"src":"6042:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6042:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85983,"mutability":"mutable","name":"valid","nameLocation":"6142:5:168","nodeType":"VariableDeclaration","scope":85984,"src":"6137:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85982,"name":"bool","nodeType":"ElementaryTypeName","src":"6137:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"5913:14:168","scope":87132,"visibility":"public"},{"id":85997,"nodeType":"StructDefinition","src":"6217:541:168","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":85985,"nodeType":"StructuredDocumentation","src":"6160:52:168","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":85990,"mutability":"mutable","name":"transitions","nameLocation":"6359:11:168","nodeType":"VariableDeclaration","scope":85997,"src":"6341:29:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86195_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":85988,"nodeType":"UserDefinedTypeName","pathNode":{"id":85987,"name":"StateTransition","nameLocations":["6341:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":86195,"src":"6341:15:168"},"referencedDeclaration":86195,"src":"6341:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":85989,"nodeType":"ArrayTypeName","src":"6341:17:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86195_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":85993,"mutability":"mutable","name":"head","nameLocation":"6476:4:168","nodeType":"VariableDeclaration","scope":85997,"src":"6468:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85992,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6468:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85996,"mutability":"mutable","name":"lastAdvancedEthBlock","nameLocation":"6731:20:168","nodeType":"VariableDeclaration","scope":85997,"src":"6723:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6723:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6224:15:168","scope":87132,"visibility":"public"},{"id":86011,"nodeType":"StructDefinition","src":"6826:226:168","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":85998,"nodeType":"StructuredDocumentation","src":"6764:57:168","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":86000,"mutability":"mutable","name":"hasAggregatedPublicKey","nameLocation":"6869:22:168","nodeType":"VariableDeclaration","scope":86011,"src":"6864:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85999,"name":"bool","nodeType":"ElementaryTypeName","src":"6864:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86003,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"6921:19:168","nodeType":"VariableDeclaration","scope":86011,"src":"6901:39:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":86002,"nodeType":"UserDefinedTypeName","pathNode":{"id":86001,"name":"AggregatedPublicKey","nameLocations":["6901:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":85932,"src":"6901:19:168"},"referencedDeclaration":85932,"src":"6901:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":86005,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"6956:33:168","nodeType":"VariableDeclaration","scope":86011,"src":"6950:39:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":86004,"name":"bytes","nodeType":"ElementaryTypeName","src":"6950:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86008,"mutability":"mutable","name":"validators","nameLocation":"7009:10:168","nodeType":"VariableDeclaration","scope":86011,"src":"6999:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":86006,"name":"address","nodeType":"ElementaryTypeName","src":"6999:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86007,"nodeType":"ArrayTypeName","src":"6999:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":86010,"mutability":"mutable","name":"eraIndex","nameLocation":"7037:8:168","nodeType":"VariableDeclaration","scope":86011,"src":"7029:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86009,"name":"uint256","nodeType":"ElementaryTypeName","src":"7029:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"6833:20:168","scope":87132,"visibility":"public"},{"id":86045,"nodeType":"StructDefinition","src":"7115:1206:168","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":86012,"nodeType":"StructuredDocumentation","src":"7058:52:168","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":86015,"mutability":"mutable","name":"blockHash","nameLocation":"7252:9:168","nodeType":"VariableDeclaration","scope":86045,"src":"7244:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86014,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7244:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86018,"mutability":"mutable","name":"blockTimestamp","nameLocation":"7380:14:168","nodeType":"VariableDeclaration","scope":86045,"src":"7373:21:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86017,"name":"uint48","nodeType":"ElementaryTypeName","src":"7373:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":86021,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7493:26:168","nodeType":"VariableDeclaration","scope":86045,"src":"7485:34:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7485:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86024,"mutability":"mutable","name":"expiry","nameLocation":"7755:6:168","nodeType":"VariableDeclaration","scope":86045,"src":"7749:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":86023,"name":"uint8","nodeType":"ElementaryTypeName","src":"7749:5:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":86029,"mutability":"mutable","name":"chainCommitment","nameLocation":"7881:15:168","nodeType":"VariableDeclaration","scope":86045,"src":"7863:33:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85997_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":86027,"nodeType":"UserDefinedTypeName","pathNode":{"id":86026,"name":"ChainCommitment","nameLocations":["7863:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":85997,"src":"7863:15:168"},"referencedDeclaration":85997,"src":"7863:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":86028,"nodeType":"ArrayTypeName","src":"7863:17:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85997_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":86034,"mutability":"mutable","name":"codeCommitments","nameLocation":"8008:15:168","nodeType":"VariableDeclaration","scope":86045,"src":"7991:32:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$85984_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":86032,"nodeType":"UserDefinedTypeName","pathNode":{"id":86031,"name":"CodeCommitment","nameLocations":["7991:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":85984,"src":"7991:14:168"},"referencedDeclaration":85984,"src":"7991:14:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":86033,"nodeType":"ArrayTypeName","src":"7991:16:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$85984_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":86039,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"8147:17:168","nodeType":"VariableDeclaration","scope":86045,"src":"8127:37:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86055_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":86037,"nodeType":"UserDefinedTypeName","pathNode":{"id":86036,"name":"RewardsCommitment","nameLocations":["8127:17:168"],"nodeType":"IdentifierPath","referencedDeclaration":86055,"src":"8127:17:168"},"referencedDeclaration":86055,"src":"8127:17:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":86038,"nodeType":"ArrayTypeName","src":"8127:19:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86055_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":86044,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"8294:20:168","nodeType":"VariableDeclaration","scope":86045,"src":"8271:43:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86011_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":86042,"nodeType":"UserDefinedTypeName","pathNode":{"id":86041,"name":"ValidatorsCommitment","nameLocations":["8271:20:168"],"nodeType":"IdentifierPath","referencedDeclaration":86011,"src":"8271:20:168"},"referencedDeclaration":86011,"src":"8271:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":86043,"nodeType":"ArrayTypeName","src":"8271:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86011_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"7122:15:168","scope":87132,"visibility":"public"},{"id":86055,"nodeType":"StructDefinition","src":"8386:144:168","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":86046,"nodeType":"StructuredDocumentation","src":"8327:54:168","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":86049,"mutability":"mutable","name":"operators","nameLocation":"8447:9:168","nodeType":"VariableDeclaration","scope":86055,"src":"8421:35:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86061_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":86048,"nodeType":"UserDefinedTypeName","pathNode":{"id":86047,"name":"OperatorRewardsCommitment","nameLocations":["8421:25:168"],"nodeType":"IdentifierPath","referencedDeclaration":86061,"src":"8421:25:168"},"referencedDeclaration":86061,"src":"8421:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86061_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":86052,"mutability":"mutable","name":"stakers","nameLocation":"8490:7:168","nodeType":"VariableDeclaration","scope":86055,"src":"8466:31:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":86051,"nodeType":"UserDefinedTypeName","pathNode":{"id":86050,"name":"StakerRewardsCommitment","nameLocations":["8466:23:168"],"nodeType":"IdentifierPath","referencedDeclaration":86071,"src":"8466:23:168"},"referencedDeclaration":86071,"src":"8466:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":86054,"mutability":"mutable","name":"timestamp","nameLocation":"8514:9:168","nodeType":"VariableDeclaration","scope":86055,"src":"8507:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86053,"name":"uint48","nodeType":"ElementaryTypeName","src":"8507:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"8393:17:168","scope":87132,"visibility":"public"},{"id":86061,"nodeType":"StructDefinition","src":"8604:86:168","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":86056,"nodeType":"StructuredDocumentation","src":"8536:63:168","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":86058,"mutability":"mutable","name":"amount","nameLocation":"8655:6:168","nodeType":"VariableDeclaration","scope":86061,"src":"8647:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86057,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86060,"mutability":"mutable","name":"root","nameLocation":"8679:4:168","nodeType":"VariableDeclaration","scope":86061,"src":"8671:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8671:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8611:25:168","scope":87132,"visibility":"public"},{"id":86071,"nodeType":"StructDefinition","src":"8762:128:168","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":86062,"nodeType":"StructuredDocumentation","src":"8696:61:168","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":86066,"mutability":"mutable","name":"distribution","nameLocation":"8819:12:168","nodeType":"VariableDeclaration","scope":86071,"src":"8803:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$86077_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":86064,"nodeType":"UserDefinedTypeName","pathNode":{"id":86063,"name":"StakerRewards","nameLocations":["8803:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":86077,"src":"8803:13:168"},"referencedDeclaration":86077,"src":"8803:13:168","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86077_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":86065,"nodeType":"ArrayTypeName","src":"8803:15:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$86077_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":86068,"mutability":"mutable","name":"totalAmount","nameLocation":"8849:11:168","nodeType":"VariableDeclaration","scope":86071,"src":"8841:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86067,"name":"uint256","nodeType":"ElementaryTypeName","src":"8841:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86070,"mutability":"mutable","name":"token","nameLocation":"8878:5:168","nodeType":"VariableDeclaration","scope":86071,"src":"8870:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86069,"name":"address","nodeType":"ElementaryTypeName","src":"8870:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"8769:23:168","scope":87132,"visibility":"public"},{"id":86077,"nodeType":"StructDefinition","src":"8951:75:168","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":86072,"nodeType":"StructuredDocumentation","src":"8896:50:168","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":86074,"mutability":"mutable","name":"vault","nameLocation":"8990:5:168","nodeType":"VariableDeclaration","scope":86077,"src":"8982:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86073,"name":"address","nodeType":"ElementaryTypeName","src":"8982:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86076,"mutability":"mutable","name":"amount","nameLocation":"9013:6:168","nodeType":"VariableDeclaration","scope":86077,"src":"9005:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86075,"name":"uint256","nodeType":"ElementaryTypeName","src":"9005:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"8958:13:168","scope":87132,"visibility":"public"},{"id":86085,"nodeType":"EnumDefinition","src":"9101:960:168","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":86078,"nodeType":"StructuredDocumentation","src":"9032:64:168","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":86079,"nodeType":"StructuredDocumentation","src":"9126:260:168","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":86080,"name":"Unknown","nameLocation":"9395:7:168","nodeType":"EnumValue","src":"9395:7:168"},{"documentation":{"id":86081,"nodeType":"StructuredDocumentation","src":"9412:465:168","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":86082,"name":"ValidationRequested","nameLocation":"9886:19:168","nodeType":"EnumValue","src":"9886:19:168"},{"documentation":{"id":86083,"nodeType":"StructuredDocumentation","src":"9915:122:168","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":86084,"name":"Validated","nameLocation":"10046:9:168","nodeType":"EnumValue","src":"10046:9:168"}],"name":"CodeState","nameLocation":"9106:9:168"},{"id":86091,"nodeType":"StructDefinition","src":"10141:81:168","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":86086,"nodeType":"StructuredDocumentation","src":"10067:69:168","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":86088,"mutability":"mutable","name":"hash","nameLocation":"10185:4:168","nodeType":"VariableDeclaration","scope":86091,"src":"10177:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10177:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86090,"mutability":"mutable","name":"timestamp","nameLocation":"10206:9:168","nodeType":"VariableDeclaration","scope":86091,"src":"10199:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86089,"name":"uint48","nodeType":"ElementaryTypeName","src":"10199:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"10148:18:168","scope":87132,"visibility":"public"},{"id":86097,"nodeType":"StructDefinition","src":"10289:92:168","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":86092,"nodeType":"StructuredDocumentation","src":"10228:56:168","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":86094,"mutability":"mutable","name":"threshold","nameLocation":"10333:9:168","nodeType":"VariableDeclaration","scope":86097,"src":"10326:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":86093,"name":"uint64","nodeType":"ElementaryTypeName","src":"10326:6:168","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":86096,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"10360:14:168","nodeType":"VariableDeclaration","scope":86097,"src":"10352:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86095,"name":"uint128","nodeType":"ElementaryTypeName","src":"10352:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"10296:19:168","scope":87132,"visibility":"public"},{"id":86105,"nodeType":"StructDefinition","src":"10459:102:168","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":86098,"nodeType":"StructuredDocumentation","src":"10387:67:168","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":86100,"mutability":"mutable","name":"hash","nameLocation":"10501:4:168","nodeType":"VariableDeclaration","scope":86105,"src":"10493:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10493:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86102,"mutability":"mutable","name":"number","nameLocation":"10522:6:168","nodeType":"VariableDeclaration","scope":86105,"src":"10515:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":86101,"name":"uint32","nodeType":"ElementaryTypeName","src":"10515:6:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":86104,"mutability":"mutable","name":"timestamp","nameLocation":"10545:9:168","nodeType":"VariableDeclaration","scope":86105,"src":"10538:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86103,"name":"uint48","nodeType":"ElementaryTypeName","src":"10538:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10466:16:168","scope":87132,"visibility":"public"},{"id":86126,"nodeType":"StructDefinition","src":"10615:1092:168","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":86106,"nodeType":"StructuredDocumentation","src":"10567:43:168","text":" @dev Represents message."},"members":[{"constant":false,"id":86109,"mutability":"mutable","name":"id","nameLocation":"10740:2:168","nodeType":"VariableDeclaration","scope":86126,"src":"10732:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10732:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86112,"mutability":"mutable","name":"destination","nameLocation":"10936:11:168","nodeType":"VariableDeclaration","scope":86126,"src":"10928:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86111,"name":"address","nodeType":"ElementaryTypeName","src":"10928:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86115,"mutability":"mutable","name":"payload","nameLocation":"11031:7:168","nodeType":"VariableDeclaration","scope":86126,"src":"11025:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":86114,"name":"bytes","nodeType":"ElementaryTypeName","src":"11025:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86118,"mutability":"mutable","name":"value","nameLocation":"11135:5:168","nodeType":"VariableDeclaration","scope":86126,"src":"11127:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86117,"name":"uint128","nodeType":"ElementaryTypeName","src":"11127:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86122,"mutability":"mutable","name":"replyDetails","nameLocation":"11383:12:168","nodeType":"VariableDeclaration","scope":86126,"src":"11370:25:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":86121,"nodeType":"UserDefinedTypeName","pathNode":{"id":86120,"name":"ReplyDetails","nameLocations":["11370:12:168"],"nodeType":"IdentifierPath","referencedDeclaration":86165,"src":"11370:12:168"},"referencedDeclaration":86165,"src":"11370:12:168","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":86125,"mutability":"mutable","name":"call","nameLocation":"11696:4:168","nodeType":"VariableDeclaration","scope":86126,"src":"11691:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86124,"name":"bool","nodeType":"ElementaryTypeName","src":"11691:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10622:7:168","scope":87132,"visibility":"public"},{"id":86157,"nodeType":"StructDefinition","src":"11771:1505:168","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":86127,"nodeType":"StructuredDocumentation","src":"11713:53:168","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":86133,"mutability":"mutable","name":"codes","nameLocation":"12045:5:168","nodeType":"VariableDeclaration","scope":86157,"src":"12015:35:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":86132,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":86129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12023:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"12015:29:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":86131,"nodeType":"UserDefinedTypeName","pathNode":{"id":86130,"name":"CodeState","nameLocations":["12034:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":86085,"src":"12034:9:168"},"referencedDeclaration":86085,"src":"12034:9:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":86138,"mutability":"mutable","name":"programs","nameLocation":"12263:8:168","nodeType":"VariableDeclaration","scope":86157,"src":"12235:36:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":86137,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":86135,"name":"address","nodeType":"ElementaryTypeName","src":"12243:7:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"12235:27:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":86136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12254:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":86141,"mutability":"mutable","name":"programsCount","nameLocation":"12380:13:168","nodeType":"VariableDeclaration","scope":86157,"src":"12372:21:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86140,"name":"uint256","nodeType":"ElementaryTypeName","src":"12372:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86144,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12508:19:168","nodeType":"VariableDeclaration","scope":86157,"src":"12500:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86143,"name":"uint256","nodeType":"ElementaryTypeName","src":"12500:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86147,"mutability":"mutable","name":"maxValidators","nameLocation":"12626:13:168","nodeType":"VariableDeclaration","scope":86157,"src":"12619:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":86146,"name":"uint16","nodeType":"ElementaryTypeName","src":"12619:6:168","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":86150,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"12817:28:168","nodeType":"VariableDeclaration","scope":86157,"src":"12809:36:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86149,"name":"uint256","nodeType":"ElementaryTypeName","src":"12809:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86153,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"13033:29:168","nodeType":"VariableDeclaration","scope":86157,"src":"13025:37:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86152,"name":"uint256","nodeType":"ElementaryTypeName","src":"13025:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86156,"mutability":"mutable","name":"protocolVersion","nameLocation":"13254:15:168","nodeType":"VariableDeclaration","scope":86157,"src":"13246:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86155,"name":"uint256","nodeType":"ElementaryTypeName","src":"13246:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"11778:12:168","scope":87132,"visibility":"public"},{"id":86165,"nodeType":"StructDefinition","src":"13342:564:168","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":86158,"nodeType":"StructuredDocumentation","src":"13282:55:168","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":86161,"mutability":"mutable","name":"to","nameLocation":"13551:2:168","nodeType":"VariableDeclaration","scope":86165,"src":"13543:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86160,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13543:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86164,"mutability":"mutable","name":"code","nameLocation":"13895:4:168","nodeType":"VariableDeclaration","scope":86165,"src":"13888:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86163,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13888:6:168","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"13349:12:168","scope":87132,"visibility":"public"},{"id":86195,"nodeType":"StructDefinition","src":"14183:1608:168","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":86166,"nodeType":"StructuredDocumentation","src":"13912:266:168","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":86169,"mutability":"mutable","name":"actorId","nameLocation":"14410:7:168","nodeType":"VariableDeclaration","scope":86195,"src":"14402:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86168,"name":"address","nodeType":"ElementaryTypeName","src":"14402:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86172,"mutability":"mutable","name":"newStateHash","nameLocation":"14591:12:168","nodeType":"VariableDeclaration","scope":86195,"src":"14583:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14583:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86175,"mutability":"mutable","name":"exited","nameLocation":"14698:6:168","nodeType":"VariableDeclaration","scope":86195,"src":"14693:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86174,"name":"bool","nodeType":"ElementaryTypeName","src":"14693:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86178,"mutability":"mutable","name":"inheritor","nameLocation":"14900:9:168","nodeType":"VariableDeclaration","scope":86195,"src":"14892:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86177,"name":"address","nodeType":"ElementaryTypeName","src":"14892:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86181,"mutability":"mutable","name":"valueToReceive","nameLocation":"15278:14:168","nodeType":"VariableDeclaration","scope":86195,"src":"15270:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86180,"name":"uint128","nodeType":"ElementaryTypeName","src":"15270:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86184,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"15574:26:168","nodeType":"VariableDeclaration","scope":86195,"src":"15569:31:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86183,"name":"bool","nodeType":"ElementaryTypeName","src":"15569:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86189,"mutability":"mutable","name":"valueClaims","nameLocation":"15686:11:168","nodeType":"VariableDeclaration","scope":86195,"src":"15673:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86235_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":86187,"nodeType":"UserDefinedTypeName","pathNode":{"id":86186,"name":"ValueClaim","nameLocations":["15673:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":86235,"src":"15673:10:168"},"referencedDeclaration":86235,"src":"15673:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":86188,"nodeType":"ArrayTypeName","src":"15673:12:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86235_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"},{"constant":false,"id":86194,"mutability":"mutable","name":"messages","nameLocation":"15776:8:168","nodeType":"VariableDeclaration","scope":86195,"src":"15766:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86126_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":86192,"nodeType":"UserDefinedTypeName","pathNode":{"id":86191,"name":"Message","nameLocations":["15766:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":86126,"src":"15766:7:168"},"referencedDeclaration":86126,"src":"15766:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_storage_ptr","typeString":"struct Gear.Message"}},"id":86193,"nodeType":"ArrayTypeName","src":"15766:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86126_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"14190:15:168","scope":87132,"visibility":"public"},{"id":86203,"nodeType":"StructDefinition","src":"15851:104:168","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":86196,"nodeType":"StructuredDocumentation","src":"15797:49:168","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":86198,"mutability":"mutable","name":"era","nameLocation":"15886:3:168","nodeType":"VariableDeclaration","scope":86203,"src":"15878:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86197,"name":"uint256","nodeType":"ElementaryTypeName","src":"15878:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86200,"mutability":"mutable","name":"election","nameLocation":"15907:8:168","nodeType":"VariableDeclaration","scope":86203,"src":"15899:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86199,"name":"uint256","nodeType":"ElementaryTypeName","src":"15899:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86202,"mutability":"mutable","name":"validationDelay","nameLocation":"15933:15:168","nodeType":"VariableDeclaration","scope":86203,"src":"15925:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86201,"name":"uint256","nodeType":"ElementaryTypeName","src":"15925:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"15858:9:168","scope":87132,"visibility":"public"},{"id":86215,"nodeType":"StructDefinition","src":"16025:171:168","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":86204,"nodeType":"StructuredDocumentation","src":"15961:59:168","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":86206,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16069:18:168","nodeType":"VariableDeclaration","scope":86215,"src":"16061:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86205,"name":"uint128","nodeType":"ElementaryTypeName","src":"16061:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86208,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16105:20:168","nodeType":"VariableDeclaration","scope":86215,"src":"16097:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86207,"name":"uint128","nodeType":"ElementaryTypeName","src":"16097:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86211,"mutability":"mutable","name":"validators0","nameLocation":"16146:11:168","nodeType":"VariableDeclaration","scope":86215,"src":"16135:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86210,"nodeType":"UserDefinedTypeName","pathNode":{"id":86209,"name":"Validators","nameLocations":["16135:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"16135:10:168"},"referencedDeclaration":85953,"src":"16135:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":86214,"mutability":"mutable","name":"validators1","nameLocation":"16178:11:168","nodeType":"VariableDeclaration","scope":86215,"src":"16167:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86213,"nodeType":"UserDefinedTypeName","pathNode":{"id":86212,"name":"Validators","nameLocations":["16167:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"16167:10:168"},"referencedDeclaration":85953,"src":"16167:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"16032:18:168","scope":87132,"visibility":"public"},{"id":86227,"nodeType":"StructDefinition","src":"16274:183:168","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":86216,"nodeType":"StructuredDocumentation","src":"16202:67:168","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":86218,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16322:18:168","nodeType":"VariableDeclaration","scope":86227,"src":"16314:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86217,"name":"uint128","nodeType":"ElementaryTypeName","src":"16314:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86220,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16358:20:168","nodeType":"VariableDeclaration","scope":86227,"src":"16350:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86219,"name":"uint128","nodeType":"ElementaryTypeName","src":"16350:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86223,"mutability":"mutable","name":"validators0","nameLocation":"16403:11:168","nodeType":"VariableDeclaration","scope":86227,"src":"16388:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":86222,"nodeType":"UserDefinedTypeName","pathNode":{"id":86221,"name":"ValidatorsView","nameLocations":["16388:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":85965,"src":"16388:14:168"},"referencedDeclaration":85965,"src":"16388:14:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":86226,"mutability":"mutable","name":"validators1","nameLocation":"16439:11:168","nodeType":"VariableDeclaration","scope":86227,"src":"16424:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":86225,"nodeType":"UserDefinedTypeName","pathNode":{"id":86224,"name":"ValidatorsView","nameLocations":["16424:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":85965,"src":"16424:14:168"},"referencedDeclaration":85965,"src":"16424:14:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"16281:22:168","scope":87132,"visibility":"public"},{"id":86235,"nodeType":"StructDefinition","src":"16519:104:168","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":86228,"nodeType":"StructuredDocumentation","src":"16463:51:168","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":86230,"mutability":"mutable","name":"messageId","nameLocation":"16555:9:168","nodeType":"VariableDeclaration","scope":86235,"src":"16547:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16547:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86232,"mutability":"mutable","name":"destination","nameLocation":"16582:11:168","nodeType":"VariableDeclaration","scope":86235,"src":"16574:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86231,"name":"address","nodeType":"ElementaryTypeName","src":"16574:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86234,"mutability":"mutable","name":"value","nameLocation":"16611:5:168","nodeType":"VariableDeclaration","scope":86235,"src":"16603:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86233,"name":"uint128","nodeType":"ElementaryTypeName","src":"16603:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"16526:10:168","scope":87132,"visibility":"public"},{"id":86257,"nodeType":"StructDefinition","src":"16703:436:168","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":86236,"nodeType":"StructuredDocumentation","src":"16629:69:168","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":86238,"mutability":"mutable","name":"vaultRegistry","nameLocation":"16779:13:168","nodeType":"VariableDeclaration","scope":86257,"src":"16771:21:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86237,"name":"address","nodeType":"ElementaryTypeName","src":"16771:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86240,"mutability":"mutable","name":"operatorRegistry","nameLocation":"16810:16:168","nodeType":"VariableDeclaration","scope":86257,"src":"16802:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86239,"name":"address","nodeType":"ElementaryTypeName","src":"16802:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86242,"mutability":"mutable","name":"networkRegistry","nameLocation":"16844:15:168","nodeType":"VariableDeclaration","scope":86257,"src":"16836:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86241,"name":"address","nodeType":"ElementaryTypeName","src":"16836:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86244,"mutability":"mutable","name":"middlewareService","nameLocation":"16877:17:168","nodeType":"VariableDeclaration","scope":86257,"src":"16869:25:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86243,"name":"address","nodeType":"ElementaryTypeName","src":"16869:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86246,"mutability":"mutable","name":"networkOptIn","nameLocation":"16912:12:168","nodeType":"VariableDeclaration","scope":86257,"src":"16904:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86245,"name":"address","nodeType":"ElementaryTypeName","src":"16904:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86248,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"16942:20:168","nodeType":"VariableDeclaration","scope":86257,"src":"16934:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86247,"name":"address","nodeType":"ElementaryTypeName","src":"16934:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86250,"mutability":"mutable","name":"operatorRewards","nameLocation":"17016:15:168","nodeType":"VariableDeclaration","scope":86257,"src":"17008:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86249,"name":"address","nodeType":"ElementaryTypeName","src":"17008:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86252,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"17049:18:168","nodeType":"VariableDeclaration","scope":86257,"src":"17041:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86251,"name":"address","nodeType":"ElementaryTypeName","src":"17041:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86254,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"17085:17:168","nodeType":"VariableDeclaration","scope":86257,"src":"17077:25:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86253,"name":"address","nodeType":"ElementaryTypeName","src":"17077:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86256,"mutability":"mutable","name":"vetoResolver","nameLocation":"17120:12:168","nodeType":"VariableDeclaration","scope":86257,"src":"17112:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86255,"name":"address","nodeType":"ElementaryTypeName","src":"17112:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16710:18:168","scope":87132,"visibility":"public"},{"id":86261,"nodeType":"EnumDefinition","src":"17212:55:168","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":86258,"nodeType":"StructuredDocumentation","src":"17145:62:168","text":" @dev Represents the type of signature used."},"members":[{"id":86259,"name":"FROST","nameLocation":"17241:5:168","nodeType":"EnumValue","src":"17241:5:168"},{"id":86260,"name":"ECDSA","nameLocation":"17256:5:168","nodeType":"EnumValue","src":"17256:5:168"}],"name":"SignatureType","nameLocation":"17217:13:168"},{"id":86266,"nodeType":"EnumDefinition","src":"17345:68:168","nodes":[],"canonicalName":"Gear.VersionType","documentation":{"id":86262,"nodeType":"StructuredDocumentation","src":"17273:67:168","text":" @dev Represents the type of version in `Router`."},"members":[{"id":86263,"name":"Major","nameLocation":"17372:5:168","nodeType":"EnumValue","src":"17372:5:168"},{"id":86264,"name":"Minor","nameLocation":"17387:5:168","nodeType":"EnumValue","src":"17387:5:168"},{"id":86265,"name":"Patch","nameLocation":"17402:5:168","nodeType":"EnumValue","src":"17402:5:168"}],"name":"VersionType","nameLocation":"17350:11:168"},{"id":86288,"nodeType":"FunctionDefinition","src":"17703:260:168","nodes":[],"body":{"id":86287,"nodeType":"Block","src":"17864:99:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86281,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86269,"src":"17908:16:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86282,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86271,"src":"17926:5:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86283,"name":"_lastAdvancedEthBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86273,"src":"17933:21:168","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":86279,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17891:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17895:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"17891:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:64:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86278,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17881:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17881:75:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86277,"id":86286,"nodeType":"Return","src":"17874:82:168"}]},"documentation":{"id":86267,"nodeType":"StructuredDocumentation","src":"17419:279:168","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":"17712:19:168","parameters":{"id":86274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86269,"mutability":"mutable","name":"_transitionsHash","nameLocation":"17740:16:168","nodeType":"VariableDeclaration","scope":86288,"src":"17732:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86268,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17732:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86271,"mutability":"mutable","name":"_head","nameLocation":"17766:5:168","nodeType":"VariableDeclaration","scope":86288,"src":"17758:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17758:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86273,"mutability":"mutable","name":"_lastAdvancedEthBlock","nameLocation":"17781:21:168","nodeType":"VariableDeclaration","scope":86288,"src":"17773:29:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17773:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17731:72:168"},"returnParameters":{"id":86277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86288,"src":"17851:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17851:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17850:9:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86305,"nodeType":"FunctionDefinition","src":"18132:336:168","nodes":[],"body":{"id":86304,"nodeType":"Block","src":"18220:248:168","nodes":[],"statements":[{"assignments":[86299],"declarations":[{"constant":false,"id":86299,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"18238:19:168","nodeType":"VariableDeclaration","scope":86304,"src":"18230:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18230:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86300,"nodeType":"VariableDeclarationStatement","src":"18230:27:168"},{"AST":{"nativeSrc":"18292:134:168","nodeType":"YulBlock","src":"18292:134:168","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18313:4:168","nodeType":"YulLiteral","src":"18313:4:168","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"18319:6:168","nodeType":"YulIdentifier","src":"18319:6:168"}],"functionName":{"name":"mstore","nativeSrc":"18306:6:168","nodeType":"YulIdentifier","src":"18306:6:168"},"nativeSrc":"18306:20:168","nodeType":"YulFunctionCall","src":"18306:20:168"},"nativeSrc":"18306:20:168","nodeType":"YulExpressionStatement","src":"18306:20:168"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18347:4:168","nodeType":"YulLiteral","src":"18347:4:168","type":"","value":"0x20"},{"name":"valid","nativeSrc":"18353:5:168","nodeType":"YulIdentifier","src":"18353:5:168"}],"functionName":{"name":"mstore8","nativeSrc":"18339:7:168","nodeType":"YulIdentifier","src":"18339:7:168"},"nativeSrc":"18339:20:168","nodeType":"YulFunctionCall","src":"18339:20:168"},"nativeSrc":"18339:20:168","nodeType":"YulExpressionStatement","src":"18339:20:168"},{"nativeSrc":"18372:44:168","nodeType":"YulAssignment","src":"18372:44:168","value":{"arguments":[{"kind":"number","nativeSrc":"18405:4:168","nodeType":"YulLiteral","src":"18405:4:168","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18411:4:168","nodeType":"YulLiteral","src":"18411:4:168","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"18395:9:168","nodeType":"YulIdentifier","src":"18395:9:168"},"nativeSrc":"18395:21:168","nodeType":"YulFunctionCall","src":"18395:21:168"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"18372:19:168","nodeType":"YulIdentifier","src":"18372:19:168"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":86299,"isOffset":false,"isSlot":false,"src":"18372:19:168","valueSize":1},{"declaration":86291,"isOffset":false,"isSlot":false,"src":"18319:6:168","valueSize":1},{"declaration":86293,"isOffset":false,"isSlot":false,"src":"18353:5:168","valueSize":1}],"flags":["memory-safe"],"id":86301,"nodeType":"InlineAssembly","src":"18267:159:168"},{"expression":{"id":86302,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86299,"src":"18442:19:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86297,"id":86303,"nodeType":"Return","src":"18435:26:168"}]},"documentation":{"id":86289,"nodeType":"StructuredDocumentation","src":"17969:158:168","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":"18141:18:168","parameters":{"id":86294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86291,"mutability":"mutable","name":"codeId","nameLocation":"18168:6:168","nodeType":"VariableDeclaration","scope":86305,"src":"18160:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18160:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86293,"mutability":"mutable","name":"valid","nameLocation":"18181:5:168","nodeType":"VariableDeclaration","scope":86305,"src":"18176:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86292,"name":"bool","nodeType":"ElementaryTypeName","src":"18176:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18159:28:168"},"returnParameters":{"id":86297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86305,"src":"18211:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18211:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18210:9:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86327,"nodeType":"FunctionDefinition","src":"18745:273:168","nodes":[],"body":{"id":86326,"nodeType":"Block","src":"18913:105:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86320,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86308,"src":"18957:20:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86321,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86310,"src":"18979:18:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86322,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86312,"src":"18999:10:168","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":86318,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18940:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18944:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"18940:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18940:70:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86317,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18930:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18930:81:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86316,"id":86325,"nodeType":"Return","src":"18923:88:168"}]},"documentation":{"id":86306,"nodeType":"StructuredDocumentation","src":"18474:266:168","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":"18754:21:168","parameters":{"id":86313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86308,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"18784:20:168","nodeType":"VariableDeclaration","scope":86327,"src":"18776:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18776:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86310,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"18814:18:168","nodeType":"VariableDeclaration","scope":86327,"src":"18806:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18806:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86312,"mutability":"mutable","name":"_timestamp","nameLocation":"18841:10:168","nodeType":"VariableDeclaration","scope":86327,"src":"18834:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86311,"name":"uint48","nodeType":"ElementaryTypeName","src":"18834:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"18775:77:168"},"returnParameters":{"id":86316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86327,"src":"18900:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18900:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18899:9:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86355,"nodeType":"FunctionDefinition","src":"19149:425:168","nodes":[],"body":{"id":86354,"nodeType":"Block","src":"19260:314:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":86339,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86331,"src":"19334:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19345:22:168","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86000,"src":"19334:33:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":86341,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86331,"src":"19385:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19396:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86003,"src":"19385:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":86343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19416:1:168","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":85929,"src":"19385:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":86344,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86331,"src":"19435:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19446:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86003,"src":"19435:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":86346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19466:1:168","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":85931,"src":"19435:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":86347,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86331,"src":"19485:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19496:10:168","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":86008,"src":"19485:21:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":86349,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86331,"src":"19524:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19535:8:168","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":86010,"src":"19524:19:168","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":86337,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19300:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19304:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"19300:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19300:257:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86336,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19277:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19277:290:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86335,"id":86353,"nodeType":"Return","src":"19270:297:168"}]},"documentation":{"id":86328,"nodeType":"StructuredDocumentation","src":"19024:120:168","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"19158:24:168","parameters":{"id":86332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86331,"mutability":"mutable","name":"commitment","nameLocation":"19216:10:168","nodeType":"VariableDeclaration","scope":86355,"src":"19183:43:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":86330,"nodeType":"UserDefinedTypeName","pathNode":{"id":86329,"name":"Gear.ValidatorsCommitment","nameLocations":["19183:4:168","19188:20:168"],"nodeType":"IdentifierPath","referencedDeclaration":86011,"src":"19183:25:168"},"referencedDeclaration":86011,"src":"19183:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"19182:45:168"},"returnParameters":{"id":86335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86355,"src":"19251:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19251:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19250:9:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86392,"nodeType":"FunctionDefinition","src":"20187:697:168","nodes":[],"body":{"id":86391,"nodeType":"Block","src":"20524:360:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86380,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86358,"src":"20598:6:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86381,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86360,"src":"20622:10:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":86382,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86362,"src":"20650:19:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86383,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86364,"src":"20687:7:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":86384,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86366,"src":"20712:20:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86385,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86368,"src":"20750:20:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86386,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86370,"src":"20788:22:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86387,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86372,"src":"20828:25:168","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":86378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20564:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20568:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"20564:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20564:303:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86377,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20541:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20541:336:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86376,"id":86390,"nodeType":"Return","src":"20534:343:168"}]},"documentation":{"id":86356,"nodeType":"StructuredDocumentation","src":"19580:602:168","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":"20196:19:168","parameters":{"id":86373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86358,"mutability":"mutable","name":"_block","nameLocation":"20233:6:168","nodeType":"VariableDeclaration","scope":86392,"src":"20225:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20225:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86360,"mutability":"mutable","name":"_timestamp","nameLocation":"20256:10:168","nodeType":"VariableDeclaration","scope":86392,"src":"20249:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86359,"name":"uint48","nodeType":"ElementaryTypeName","src":"20249:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":86362,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"20284:19:168","nodeType":"VariableDeclaration","scope":86392,"src":"20276:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20276:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86364,"mutability":"mutable","name":"_expiry","nameLocation":"20319:7:168","nodeType":"VariableDeclaration","scope":86392,"src":"20313:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":86363,"name":"uint8","nodeType":"ElementaryTypeName","src":"20313:5:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":86366,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"20344:20:168","nodeType":"VariableDeclaration","scope":86392,"src":"20336:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20336:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86368,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"20382:20:168","nodeType":"VariableDeclaration","scope":86392,"src":"20374:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20374:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86370,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"20420:22:168","nodeType":"VariableDeclaration","scope":86392,"src":"20412:30:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20412:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86372,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"20460:25:168","nodeType":"VariableDeclaration","scope":86392,"src":"20452:33:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20452:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20215:276:168"},"returnParameters":{"id":86376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86392,"src":"20515:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20515:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20514:9:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86424,"nodeType":"FunctionDefinition","src":"21015:407:168","nodes":[],"body":{"id":86423,"nodeType":"Block","src":"21092:330:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":86404,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86396,"src":"21166:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21174:2:168","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86109,"src":"21166:10:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":86406,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86396,"src":"21194:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21202:11:168","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"21194:19:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":86408,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86396,"src":"21231:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21239:7:168","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86115,"src":"21231:15:168","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":86410,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86396,"src":"21264:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21272:5:168","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"21264:13:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":86412,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86396,"src":"21295:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21303:12:168","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86122,"src":"21295:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":86414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21316:2:168","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":86161,"src":"21295:23:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":86415,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86396,"src":"21336:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21344:12:168","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86122,"src":"21336:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":86417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21357:4:168","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86164,"src":"21336:25:168","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":86418,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86396,"src":"21379:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21387:4:168","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":86125,"src":"21379:12:168","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":86402,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21132:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21136:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"21132:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21132:273:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86401,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21109:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21109:306:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86400,"id":86422,"nodeType":"Return","src":"21102:313:168"}]},"documentation":{"id":86393,"nodeType":"StructuredDocumentation","src":"20890:120:168","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":"21024:11:168","parameters":{"id":86397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86396,"mutability":"mutable","name":"message","nameLocation":"21051:7:168","nodeType":"VariableDeclaration","scope":86424,"src":"21036:22:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":86395,"nodeType":"UserDefinedTypeName","pathNode":{"id":86394,"name":"Message","nameLocations":["21036:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":86126,"src":"21036:7:168"},"referencedDeclaration":86126,"src":"21036:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"21035:24:168"},"returnParameters":{"id":86400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86424,"src":"21083:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21083:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21082:9:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86446,"nodeType":"FunctionDefinition","src":"21629:199:168","nodes":[],"body":{"id":86445,"nodeType":"Block","src":"21743:85:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86439,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86427,"src":"21787:10:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86440,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86429,"src":"21799:12:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86441,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86431,"src":"21813:6:168","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":86437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21770:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21774:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"21770:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21770:50:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86436,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21760:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21760:61:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86435,"id":86444,"nodeType":"Return","src":"21753:68:168"}]},"documentation":{"id":86425,"nodeType":"StructuredDocumentation","src":"21428:196:168","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":"21638:14:168","parameters":{"id":86432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86427,"mutability":"mutable","name":"_messageId","nameLocation":"21661:10:168","nodeType":"VariableDeclaration","scope":86446,"src":"21653:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21653:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86429,"mutability":"mutable","name":"_destination","nameLocation":"21681:12:168","nodeType":"VariableDeclaration","scope":86446,"src":"21673:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86428,"name":"address","nodeType":"ElementaryTypeName","src":"21673:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86431,"mutability":"mutable","name":"_value","nameLocation":"21703:6:168","nodeType":"VariableDeclaration","scope":86446,"src":"21695:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86430,"name":"uint128","nodeType":"ElementaryTypeName","src":"21695:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21652:58:168"},"returnParameters":{"id":86435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86446,"src":"21734:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21734:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21733:9:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86483,"nodeType":"FunctionDefinition","src":"22332:646:168","nodes":[],"body":{"id":86482,"nodeType":"Block","src":"22642:336:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86471,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86449,"src":"22716:5:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86472,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86451,"src":"22739:12:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86473,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86453,"src":"22769:6:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":86474,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86455,"src":"22793:9:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86475,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86457,"src":"22820:14:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":86476,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86459,"src":"22852:26:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":86477,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86461,"src":"22896:15:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86478,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86463,"src":"22929:18:168","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":86469,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22682:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22686:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"22682:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22682:279:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86468,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"22659:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22659:312:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86467,"id":86481,"nodeType":"Return","src":"22652:319:168"}]},"documentation":{"id":86447,"nodeType":"StructuredDocumentation","src":"21834:493:168","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":"22341:19:168","parameters":{"id":86464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86449,"mutability":"mutable","name":"actor","nameLocation":"22378:5:168","nodeType":"VariableDeclaration","scope":86483,"src":"22370:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86448,"name":"address","nodeType":"ElementaryTypeName","src":"22370:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86451,"mutability":"mutable","name":"newStateHash","nameLocation":"22401:12:168","nodeType":"VariableDeclaration","scope":86483,"src":"22393:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22393:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86453,"mutability":"mutable","name":"exited","nameLocation":"22428:6:168","nodeType":"VariableDeclaration","scope":86483,"src":"22423:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86452,"name":"bool","nodeType":"ElementaryTypeName","src":"22423:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86455,"mutability":"mutable","name":"inheritor","nameLocation":"22452:9:168","nodeType":"VariableDeclaration","scope":86483,"src":"22444:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86454,"name":"address","nodeType":"ElementaryTypeName","src":"22444:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86457,"mutability":"mutable","name":"valueToReceive","nameLocation":"22479:14:168","nodeType":"VariableDeclaration","scope":86483,"src":"22471:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86456,"name":"uint128","nodeType":"ElementaryTypeName","src":"22471:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86459,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"22508:26:168","nodeType":"VariableDeclaration","scope":86483,"src":"22503:31:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86458,"name":"bool","nodeType":"ElementaryTypeName","src":"22503:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86461,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"22552:15:168","nodeType":"VariableDeclaration","scope":86483,"src":"22544:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22544:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86463,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"22585:18:168","nodeType":"VariableDeclaration","scope":86483,"src":"22577:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22577:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22360:249:168"},"returnParameters":{"id":86467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86466,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86483,"src":"22633:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22633:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22632:9:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86548,"nodeType":"FunctionDefinition","src":"23252:532:168","nodes":[],"body":{"id":86547,"nodeType":"Block","src":"23351:433:168","nodes":[],"statements":[{"assignments":[86494],"declarations":[{"constant":false,"id":86494,"mutability":"mutable","name":"start","nameLocation":"23369:5:168","nodeType":"VariableDeclaration","scope":86547,"src":"23361:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86493,"name":"uint256","nodeType":"ElementaryTypeName","src":"23361:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86499,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86495,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23377:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23383:6:168","memberName":"number","nodeType":"MemberAccess","src":"23377:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":86497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23392:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23377:16:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23361:32:168"},{"assignments":[86501],"declarations":[{"constant":false,"id":86501,"mutability":"mutable","name":"end","nameLocation":"23411:3:168","nodeType":"VariableDeclaration","scope":86547,"src":"23403:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86500,"name":"uint256","nodeType":"ElementaryTypeName","src":"23403:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86512,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86502,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86488,"src":"23417:6:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":86503,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23427:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23433:6:168","memberName":"number","nodeType":"MemberAccess","src":"23427:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23417:22:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86507,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23446:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23452:6:168","memberName":"number","nodeType":"MemberAccess","src":"23446:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":86509,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86488,"src":"23461:6:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"23446:21:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23417:50:168","trueExpression":{"hexValue":"30","id":86506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23442:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23403:64:168"},{"body":{"id":86543,"nodeType":"Block","src":"23512:243:168","statements":[{"assignments":[86521],"declarations":[{"constant":false,"id":86521,"mutability":"mutable","name":"ret","nameLocation":"23534:3:168","nodeType":"VariableDeclaration","scope":86543,"src":"23526:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23526:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86525,"initialValue":{"arguments":[{"id":86523,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86514,"src":"23550:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86522,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"23540:9:168","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":86524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23540:12:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23526:26:168"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86526,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86521,"src":"23570:3:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86527,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86486,"src":"23577:4:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23570:11:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86532,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86521,"src":"23637:3:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":86533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23644:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23637:8:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86537,"nodeType":"IfStatement","src":"23633:52:168","trueBody":{"id":86536,"nodeType":"Block","src":"23647:38:168","statements":[{"id":86535,"nodeType":"Break","src":"23665:5:168"}]}},"id":86538,"nodeType":"IfStatement","src":"23566:119:168","trueBody":{"id":86531,"nodeType":"Block","src":"23583:44:168","statements":[{"expression":{"hexValue":"74727565","id":86529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23608:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":86492,"id":86530,"nodeType":"Return","src":"23601:11:168"}]}},{"id":86542,"nodeType":"UncheckedBlock","src":"23699:46:168","statements":[{"expression":{"id":86540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"23727:3:168","subExpression":{"id":86539,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86514,"src":"23727:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86541,"nodeType":"ExpressionStatement","src":"23727:3:168"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86514,"src":"23501:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":86518,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86501,"src":"23506:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23501:8:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86544,"initializationExpression":{"assignments":[86514],"declarations":[{"constant":false,"id":86514,"mutability":"mutable","name":"i","nameLocation":"23490:1:168","nodeType":"VariableDeclaration","scope":86544,"src":"23482:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86513,"name":"uint256","nodeType":"ElementaryTypeName","src":"23482:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86516,"initialValue":{"id":86515,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86494,"src":"23494:5:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23482:17:168"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"23477:278:168"},{"expression":{"hexValue":"66616c7365","id":86545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23772:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":86492,"id":86546,"nodeType":"Return","src":"23765:12:168"}]},"documentation":{"id":86484,"nodeType":"StructuredDocumentation","src":"22984:263:168","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":"23261:18:168","parameters":{"id":86489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86486,"mutability":"mutable","name":"hash","nameLocation":"23288:4:168","nodeType":"VariableDeclaration","scope":86548,"src":"23280:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23280:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86488,"mutability":"mutable","name":"expiry","nameLocation":"23300:6:168","nodeType":"VariableDeclaration","scope":86548,"src":"23294:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":86487,"name":"uint8","nodeType":"ElementaryTypeName","src":"23294:5:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"23279:28:168"},"returnParameters":{"id":86492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86491,"mutability":"mutable","name":"isPredecessor","nameLocation":"23336:13:168","nodeType":"VariableDeclaration","scope":86548,"src":"23331:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86490,"name":"bool","nodeType":"ElementaryTypeName","src":"23331:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23330:20:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86561,"nodeType":"FunctionDefinition","src":"23929:222:168","nodes":[],"body":{"id":86560,"nodeType":"Block","src":"24038:113:168","nodes":[],"statements":[{"expression":{"arguments":[{"id":86556,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85893,"src":"24087:21:168","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":86557,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85905,"src":"24126:16:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86555,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86097,"src":"24055:19:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$86097_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":86558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24076:9:168","24110:14:168"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"24055:89:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":86554,"id":86559,"nodeType":"Return","src":"24048:96:168"}]},"documentation":{"id":86549,"nodeType":"StructuredDocumentation","src":"23790:134:168","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"23938:26:168","parameters":{"id":86550,"nodeType":"ParameterList","parameters":[],"src":"23964:2:168"},"returnParameters":{"id":86554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86553,"mutability":"mutable","name":"computationSettings","nameLocation":"24017:19:168","nodeType":"VariableDeclaration","scope":86561,"src":"23990:46:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":86552,"nodeType":"UserDefinedTypeName","pathNode":{"id":86551,"name":"ComputationSettings","nameLocations":["23990:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":86097,"src":"23990:19:168"},"referencedDeclaration":86097,"src":"23990:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"23989:48:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86584,"nodeType":"FunctionDefinition","src":"24277:229:168","nodes":[],"body":{"id":86583,"nodeType":"Block","src":"24364:142:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":86571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24425:1:168","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":86570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24417:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":86569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24417:7:168","typeDescriptions":{}}},"id":86572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24417:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":86575,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24455:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24461:6:168","memberName":"number","nodeType":"MemberAccess","src":"24455:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":86573,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"24437:8:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$13734_$","typeString":"type(library SafeCast)"}},"id":86574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24446:8:168","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":12780,"src":"24437:17:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":86577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24437:31:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86578,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"24481:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":86579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24486:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"24481:14:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":86580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24481:16:168","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":86568,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86105,"src":"24393:16:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$86105_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":86581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24411:4:168","24429:6:168","24470:9:168"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"24393:106:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":86567,"id":86582,"nodeType":"Return","src":"24374:125:168"}]},"documentation":{"id":86562,"nodeType":"StructuredDocumentation","src":"24157:115:168","text":" @dev Creates new genesis block info.\n @return genesisBlockInfo The new genesis block info."},"implemented":true,"kind":"function","modifiers":[],"name":"newGenesis","nameLocation":"24286:10:168","parameters":{"id":86563,"nodeType":"ParameterList","parameters":[],"src":"24296:2:168"},"returnParameters":{"id":86567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86566,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"24346:16:168","nodeType":"VariableDeclaration","scope":86584,"src":"24322:40:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":86565,"nodeType":"UserDefinedTypeName","pathNode":{"id":86564,"name":"GenesisBlockInfo","nameLocations":["24322:16:168"],"nodeType":"IdentifierPath","referencedDeclaration":86105,"src":"24322:16:168"},"referencedDeclaration":86105,"src":"24322:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"24321:42:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86834,"nodeType":"FunctionDefinition","src":"24997:3813:168","nodes":[],"body":{"id":86833,"nodeType":"Block","src":"25260:3550:168","nodes":[],"statements":[{"assignments":[86606],"declarations":[{"constant":false,"id":86606,"mutability":"mutable","name":"eraStarted","nameLocation":"25332:10:168","nodeType":"VariableDeclaration","scope":86833,"src":"25324:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86605,"name":"uint256","nodeType":"ElementaryTypeName","src":"25324:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86612,"initialValue":{"arguments":[{"id":86608,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86588,"src":"25358:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":86609,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25366:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25372:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"25366:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86607,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87067,"src":"25345:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":86611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25345:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25324:58:168"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86613,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86600,"src":"25396:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86614,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86606,"src":"25401:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25396:15:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86616,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25415:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25421:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"25415:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86618,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86606,"src":"25433:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":86619,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86588,"src":"25446:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25453:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"25446:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"id":86621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25463:15:168","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":86202,"src":"25446:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25433:45:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25415:63:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25396:82:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86666,"nodeType":"Block","src":"25839:229:168","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86649,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86600,"src":"25861:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":86650,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25867:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25873:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"25867:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25861:21:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86653,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85914,"src":"25884:17:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25884:19:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86648,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25853:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25853:51:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86656,"nodeType":"ExpressionStatement","src":"25853:51:168"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86657,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86600,"src":"25923:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86658,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86606,"src":"25928:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25923:15:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86665,"nodeType":"IfStatement","src":"25919:69:168","trueBody":{"id":86664,"nodeType":"Block","src":"25940:48:168","statements":[{"expression":{"id":86662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86660,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86600,"src":"25958:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86661,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86606,"src":"25963:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25958:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86663,"nodeType":"ExpressionStatement","src":"25958:15:168"}]}}]},"id":86667,"nodeType":"IfStatement","src":"25392:676:168","trueBody":{"id":86647,"nodeType":"Block","src":"25480:353:168","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86626,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86600,"src":"25502:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":86627,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86588,"src":"25508:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25515:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"25508:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":86629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25528:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86104,"src":"25508:29:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"25502:35:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86631,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85908,"src":"25539:23:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25539:25:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86625,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25494:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25494:71:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86634,"nodeType":"ExpressionStatement","src":"25494:71:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86636,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86600,"src":"25587:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":86637,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86588,"src":"25592:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25599:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"25592:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"id":86639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25609:3:168","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86198,"src":"25592:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25587:25:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":86641,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86606,"src":"25616:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25587:39:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86643,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85911,"src":"25628:29:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25628:31:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86635,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25579:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25579:81:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86646,"nodeType":"ExpressionStatement","src":"25579:81:168"}]}},{"assignments":[86670],"declarations":[{"constant":false,"id":86670,"mutability":"mutable","name":"validators","nameLocation":"26149:10:168","nodeType":"VariableDeclaration","scope":86833,"src":"26130:29:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86669,"nodeType":"UserDefinedTypeName","pathNode":{"id":86668,"name":"Validators","nameLocations":["26130:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"26130:10:168"},"referencedDeclaration":85953,"src":"26130:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":86675,"initialValue":{"arguments":[{"id":86672,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86588,"src":"26175:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":86673,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86600,"src":"26183:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86671,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86906,"src":"26162:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":86674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26162:24:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"26130:56:168"},{"assignments":[86677],"declarations":[{"constant":false,"id":86677,"mutability":"mutable","name":"_messageHash","nameLocation":"26204:12:168","nodeType":"VariableDeclaration","scope":86833,"src":"26196:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26196:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86685,"initialValue":{"arguments":[{"id":86683,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86592,"src":"26265:9:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":86680,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"26227:4:168","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$87132","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$87132","typeString":"library Gear"}],"id":86679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26219:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86678,"name":"address","nodeType":"ElementaryTypeName","src":"26219:7:168","typeDescriptions":{}}},"id":86681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26219:13:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26233:31:168","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":10204,"src":"26219:45:168","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":86684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26219:56:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26196:79:168"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"},"id":86689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86686,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86595,"src":"26290:14:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":86687,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86261,"src":"26308:13:168","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$86261_$","typeString":"type(enum Gear.SignatureType)"}},"id":86688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26322:5:168","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":86259,"src":"26308:19:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"}},"src":"26290:37:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"},"id":86742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86739,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86595,"src":"27486:14:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":86740,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86261,"src":"27504:13:168","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$86261_$","typeString":"type(enum Gear.SignatureType)"}},"id":86741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27518:5:168","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":86260,"src":"27504:19:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"}},"src":"27486:37:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86829,"nodeType":"IfStatement","src":"27482:1299:168","trueBody":{"id":86828,"nodeType":"Block","src":"27525:1256:168","statements":[{"assignments":[86744],"declarations":[{"constant":false,"id":86744,"mutability":"mutable","name":"threshold","nameLocation":"27547:9:168","nodeType":"VariableDeclaration","scope":86828,"src":"27539:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86743,"name":"uint256","nodeType":"ElementaryTypeName","src":"27539:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86756,"initialValue":{"arguments":[{"expression":{"expression":{"id":86746,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86670,"src":"27596:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27607:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85949,"src":"27596:15:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":86748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27612:6:168","memberName":"length","nodeType":"MemberAccess","src":"27596:22:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":86749,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86588,"src":"27636:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27643:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"27636:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27662:18:168","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86206,"src":"27636:44:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":86752,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86588,"src":"27698:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27705:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"27698:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27724:20:168","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"27698:46:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86745,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87019,"src":"27559:19:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":86755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27559:199:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27539:219:168"},{"assignments":[86758],"declarations":[{"constant":false,"id":86758,"mutability":"mutable","name":"validSignatures","nameLocation":"27781:15:168","nodeType":"VariableDeclaration","scope":86828,"src":"27773:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86757,"name":"uint256","nodeType":"ElementaryTypeName","src":"27773:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86760,"initialValue":{"hexValue":"30","id":86759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27799:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27773:27:168"},{"body":{"id":86824,"nodeType":"Block","src":"27864:880:168","statements":[{"assignments":[86773],"declarations":[{"constant":false,"id":86773,"mutability":"mutable","name":"signature","nameLocation":"27897:9:168","nodeType":"VariableDeclaration","scope":86824,"src":"27882:24:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86772,"name":"bytes","nodeType":"ElementaryTypeName","src":"27882:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":86777,"initialValue":{"baseExpression":{"id":86774,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86598,"src":"27909:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86776,"indexExpression":{"id":86775,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86762,"src":"27921:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27909:14:168","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27882:41:168"},{"assignments":[86779],"declarations":[{"constant":false,"id":86779,"mutability":"mutable","name":"validator","nameLocation":"27950:9:168","nodeType":"VariableDeclaration","scope":86824,"src":"27942:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86778,"name":"address","nodeType":"ElementaryTypeName","src":"27942:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":86784,"initialValue":{"arguments":[{"id":86782,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86773,"src":"27983:9:168","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":86780,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86677,"src":"27962:12:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27975:7:168","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"27962:20:168","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":86783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27962:31:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27942:51:168"},{"condition":{"baseExpression":{"expression":{"id":86785,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86670,"src":"28016:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28027:3:168","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85945,"src":"28016:14:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":86788,"indexExpression":{"id":86787,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86779,"src":"28031:9:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28016:25:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86823,"nodeType":"IfStatement","src":"28012:718:168","trueBody":{"id":86822,"nodeType":"Block","src":"28043:687:168","statements":[{"assignments":[86791],"declarations":[{"constant":false,"id":86791,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"28268:30:168","nodeType":"VariableDeclaration","scope":86822,"src":"28260:38:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28260:7:168","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":86796,"initialValue":{"arguments":[{"id":86794,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86779,"src":"28338:9:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":86792,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86590,"src":"28301:22:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28324:13:168","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":6651,"src":"28301:36:168","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":86795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28301:47:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28260:88:168"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86797,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86791,"src":"28375:30:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28406:9:168","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":8395,"src":"28375:40:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$8380_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":86799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28375:42:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$8380","typeString":"TransientSlot.BooleanSlot"}},"id":86800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28418:5:168","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":8479,"src":"28375:48:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_BooleanSlot_$8380_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BooleanSlot_$8380_$","typeString":"function (TransientSlot.BooleanSlot) view returns (bool)"}},"id":86801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28375:50:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86812,"nodeType":"Block","src":"28490:104:168","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":86809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28566:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86804,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86791,"src":"28516:30:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28547:9:168","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":8395,"src":"28516:40:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$8380_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":86807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28516:42:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$8380","typeString":"TransientSlot.BooleanSlot"}},"id":86808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28559:6:168","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":8490,"src":"28516:49:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$8380_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$8380_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":86810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28516:55:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86811,"nodeType":"ExpressionStatement","src":"28516:55:168"}]},"id":86813,"nodeType":"IfStatement","src":"28371:223:168","trueBody":{"id":86803,"nodeType":"Block","src":"28427:57:168","statements":[{"id":86802,"nodeType":"Continue","src":"28453:8:168"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28620:17:168","subExpression":{"id":86814,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86758,"src":"28622:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86816,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86744,"src":"28641:9:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28620:30:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86821,"nodeType":"IfStatement","src":"28616:96:168","trueBody":{"id":86820,"nodeType":"Block","src":"28652:60:168","statements":[{"expression":{"hexValue":"74727565","id":86818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28685:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":86604,"id":86819,"nodeType":"Return","src":"28678:11:168"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86765,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86762,"src":"27835:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":86766,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86598,"src":"27839:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27851:6:168","memberName":"length","nodeType":"MemberAccess","src":"27839:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27835:22:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86825,"initializationExpression":{"assignments":[86762],"declarations":[{"constant":false,"id":86762,"mutability":"mutable","name":"i","nameLocation":"27828:1:168","nodeType":"VariableDeclaration","scope":86825,"src":"27820:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86761,"name":"uint256","nodeType":"ElementaryTypeName","src":"27820:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86764,"initialValue":{"hexValue":"30","id":86763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27832:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27820:13:168"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":86770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27859:3:168","subExpression":{"id":86769,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86762,"src":"27859:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86771,"nodeType":"ExpressionStatement","src":"27859:3:168"},"nodeType":"ForStatement","src":"27815:929:168"},{"expression":{"hexValue":"66616c7365","id":86826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28765:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":86604,"id":86827,"nodeType":"Return","src":"28758:12:168"}]}},"id":86830,"nodeType":"IfStatement","src":"26286:2495:168","trueBody":{"id":86738,"nodeType":"Block","src":"26329:1147:168","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86691,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86598,"src":"26351:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26363:6:168","memberName":"length","nodeType":"MemberAccess","src":"26351:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":86693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26373:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26351:23:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86695,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85917,"src":"26376:26:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26376:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86690,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26343:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26343:62:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86698,"nodeType":"ExpressionStatement","src":"26343:62:168"},{"assignments":[86700],"declarations":[{"constant":false,"id":86700,"mutability":"mutable","name":"_signature","nameLocation":"26433:10:168","nodeType":"VariableDeclaration","scope":86738,"src":"26420:23:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86699,"name":"bytes","nodeType":"ElementaryTypeName","src":"26420:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":86704,"initialValue":{"baseExpression":{"id":86701,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86598,"src":"26446:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86703,"indexExpression":{"hexValue":"30","id":86702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26458:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26446:14:168","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"26420:40:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86706,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86700,"src":"26482:10:168","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":86707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26493:6:168","memberName":"length","nodeType":"MemberAccess","src":"26482:17:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":86708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26503:2:168","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"26482:23:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86710,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85920,"src":"26507:27:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26507:29:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86705,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26474:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26474:63:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86713,"nodeType":"ExpressionStatement","src":"26474:63:168"},{"assignments":[86715],"declarations":[{"constant":false,"id":86715,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"26560:21:168","nodeType":"VariableDeclaration","scope":86738,"src":"26552:29:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86714,"name":"uint256","nodeType":"ElementaryTypeName","src":"26552:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86716,"nodeType":"VariableDeclarationStatement","src":"26552:29:168"},{"assignments":[86718],"declarations":[{"constant":false,"id":86718,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"26603:21:168","nodeType":"VariableDeclaration","scope":86738,"src":"26595:29:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86717,"name":"uint256","nodeType":"ElementaryTypeName","src":"26595:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86719,"nodeType":"VariableDeclarationStatement","src":"26595:29:168"},{"assignments":[86721],"declarations":[{"constant":false,"id":86721,"mutability":"mutable","name":"_signatureZ","nameLocation":"26646:11:168","nodeType":"VariableDeclaration","scope":86738,"src":"26638:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86720,"name":"uint256","nodeType":"ElementaryTypeName","src":"26638:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86722,"nodeType":"VariableDeclarationStatement","src":"26638:19:168"},{"AST":{"nativeSrc":"26697:215:168","nodeType":"YulBlock","src":"26697:215:168","statements":[{"nativeSrc":"26715:53:168","nodeType":"YulAssignment","src":"26715:53:168","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26750:10:168","nodeType":"YulIdentifier","src":"26750:10:168"},{"kind":"number","nativeSrc":"26762:4:168","nodeType":"YulLiteral","src":"26762:4:168","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26746:3:168","nodeType":"YulIdentifier","src":"26746:3:168"},"nativeSrc":"26746:21:168","nodeType":"YulFunctionCall","src":"26746:21:168"}],"functionName":{"name":"mload","nativeSrc":"26740:5:168","nodeType":"YulIdentifier","src":"26740:5:168"},"nativeSrc":"26740:28:168","nodeType":"YulFunctionCall","src":"26740:28:168"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"26715:21:168","nodeType":"YulIdentifier","src":"26715:21:168"}]},{"nativeSrc":"26785:53:168","nodeType":"YulAssignment","src":"26785:53:168","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26820:10:168","nodeType":"YulIdentifier","src":"26820:10:168"},{"kind":"number","nativeSrc":"26832:4:168","nodeType":"YulLiteral","src":"26832:4:168","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"26816:3:168","nodeType":"YulIdentifier","src":"26816:3:168"},"nativeSrc":"26816:21:168","nodeType":"YulFunctionCall","src":"26816:21:168"}],"functionName":{"name":"mload","nativeSrc":"26810:5:168","nodeType":"YulIdentifier","src":"26810:5:168"},"nativeSrc":"26810:28:168","nodeType":"YulFunctionCall","src":"26810:28:168"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"26785:21:168","nodeType":"YulIdentifier","src":"26785:21:168"}]},{"nativeSrc":"26855:43:168","nodeType":"YulAssignment","src":"26855:43:168","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26880:10:168","nodeType":"YulIdentifier","src":"26880:10:168"},{"kind":"number","nativeSrc":"26892:4:168","nodeType":"YulLiteral","src":"26892:4:168","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26876:3:168","nodeType":"YulIdentifier","src":"26876:3:168"},"nativeSrc":"26876:21:168","nodeType":"YulFunctionCall","src":"26876:21:168"}],"functionName":{"name":"mload","nativeSrc":"26870:5:168","nodeType":"YulIdentifier","src":"26870:5:168"},"nativeSrc":"26870:28:168","nodeType":"YulFunctionCall","src":"26870:28:168"},"variableNames":[{"name":"_signatureZ","nativeSrc":"26855:11:168","nodeType":"YulIdentifier","src":"26855:11:168"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":86700,"isOffset":false,"isSlot":false,"src":"26750:10:168","valueSize":1},{"declaration":86700,"isOffset":false,"isSlot":false,"src":"26820:10:168","valueSize":1},{"declaration":86700,"isOffset":false,"isSlot":false,"src":"26880:10:168","valueSize":1},{"declaration":86715,"isOffset":false,"isSlot":false,"src":"26715:21:168","valueSize":1},{"declaration":86718,"isOffset":false,"isSlot":false,"src":"26785:21:168","valueSize":1},{"declaration":86721,"isOffset":false,"isSlot":false,"src":"26855:11:168","valueSize":1}],"flags":["memory-safe"],"id":86723,"nodeType":"InlineAssembly","src":"26672:240:168"},{"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":86726,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86670,"src":"27232:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27243:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85937,"src":"27232:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":86728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27263:1:168","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":85929,"src":"27232:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":86729,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86670,"src":"27282:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27293:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85937,"src":"27282:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":86731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27313:1:168","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":85931,"src":"27282:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86732,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86715,"src":"27332:21:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86733,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86718,"src":"27371:21:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86734,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86721,"src":"27410:11:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86735,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86677,"src":"27439:12:168","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":86724,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62425,"src":"27193:5:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$62425_$","typeString":"type(library FROST)"}},"id":86725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27199:15:168","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":62424,"src":"27193:21:168","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":86736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27193:272:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":86604,"id":86737,"nodeType":"Return","src":"27186:279:168"}]}},{"expression":{"hexValue":"66616c7365","id":86831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28798:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":86604,"id":86832,"nodeType":"Return","src":"28791:12:168"}]},"documentation":{"id":86585,"nodeType":"StructuredDocumentation","src":"24512:480:168","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":"25006:20:168","parameters":{"id":86601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86588,"mutability":"mutable","name":"router","nameLocation":"25060:6:168","nodeType":"VariableDeclaration","scope":86834,"src":"25036:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86587,"nodeType":"UserDefinedTypeName","pathNode":{"id":86586,"name":"IRouter.Storage","nameLocations":["25036:7:168","25044:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"25036:15:168"},"referencedDeclaration":77264,"src":"25036:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":86590,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"25084:22:168","nodeType":"VariableDeclaration","scope":86834,"src":"25076:30:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25076:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86592,"mutability":"mutable","name":"_dataHash","nameLocation":"25124:9:168","nodeType":"VariableDeclaration","scope":86834,"src":"25116:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25116:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86595,"mutability":"mutable","name":"_signatureType","nameLocation":"25157:14:168","nodeType":"VariableDeclaration","scope":86834,"src":"25143:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"},"typeName":{"id":86594,"nodeType":"UserDefinedTypeName","pathNode":{"id":86593,"name":"SignatureType","nameLocations":["25143:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":86261,"src":"25143:13:168"},"referencedDeclaration":86261,"src":"25143:13:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":86598,"mutability":"mutable","name":"_signatures","nameLocation":"25198:11:168","nodeType":"VariableDeclaration","scope":86834,"src":"25181:28:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":86596,"name":"bytes","nodeType":"ElementaryTypeName","src":"25181:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":86597,"nodeType":"ArrayTypeName","src":"25181:7:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":86600,"mutability":"mutable","name":"ts","nameLocation":"25227:2:168","nodeType":"VariableDeclaration","scope":86834,"src":"25219:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86599,"name":"uint256","nodeType":"ElementaryTypeName","src":"25219:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25026:209:168"},"returnParameters":{"id":86604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86834,"src":"25254:4:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86602,"name":"bool","nodeType":"ElementaryTypeName","src":"25254:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25253:6:168"},"scope":87132,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":86851,"nodeType":"FunctionDefinition","src":"28929:166:168","nodes":[],"body":{"id":86850,"nodeType":"Block","src":"29034:61:168","nodes":[],"statements":[{"expression":{"arguments":[{"id":86845,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"29064:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":86846,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29072:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29078:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"29072:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86844,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86906,"src":"29051:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":86848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29051:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":86843,"id":86849,"nodeType":"Return","src":"29044:44:168"}]},"documentation":{"id":86835,"nodeType":"StructuredDocumentation","src":"28816:108:168","text":" @dev Returns the validators for the current era.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"currentEraValidators","nameLocation":"28938:20:168","parameters":{"id":86839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86838,"mutability":"mutable","name":"router","nameLocation":"28983:6:168","nodeType":"VariableDeclaration","scope":86851,"src":"28959:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86837,"nodeType":"UserDefinedTypeName","pathNode":{"id":86836,"name":"IRouter.Storage","nameLocations":["28959:7:168","28967:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"28959:15:168"},"referencedDeclaration":77264,"src":"28959:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28958:32:168"},"returnParameters":{"id":86843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86851,"src":"29014:18:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86841,"nodeType":"UserDefinedTypeName","pathNode":{"id":86840,"name":"Validators","nameLocations":["29014:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"29014:10:168"},"referencedDeclaration":85953,"src":"29014:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29013:20:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86878,"nodeType":"FunctionDefinition","src":"29301:322:168","nodes":[],"body":{"id":86877,"nodeType":"Block","src":"29407:216:168","nodes":[],"statements":[{"condition":{"arguments":[{"id":86862,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86855,"src":"29447:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":86863,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29455:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29461:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"29455:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86861,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86973,"src":"29421:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":86865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29421:50:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86875,"nodeType":"Block","src":"29548:69:168","statements":[{"expression":{"expression":{"expression":{"id":86871,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86855,"src":"29569:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29576:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"29569:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29595:11:168","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":86214,"src":"29569:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":86860,"id":86874,"nodeType":"Return","src":"29562:44:168"}]},"id":86876,"nodeType":"IfStatement","src":"29417:200:168","trueBody":{"id":86870,"nodeType":"Block","src":"29473:69:168","statements":[{"expression":{"expression":{"expression":{"id":86866,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86855,"src":"29494:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29501:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"29494:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29520:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86211,"src":"29494:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":86860,"id":86869,"nodeType":"Return","src":"29487:44:168"}]}}]},"documentation":{"id":86852,"nodeType":"StructuredDocumentation","src":"29101:195:168","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":"29310:21:168","parameters":{"id":86856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86855,"mutability":"mutable","name":"router","nameLocation":"29356:6:168","nodeType":"VariableDeclaration","scope":86878,"src":"29332:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86854,"nodeType":"UserDefinedTypeName","pathNode":{"id":86853,"name":"IRouter.Storage","nameLocations":["29332:7:168","29340:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"29332:15:168"},"referencedDeclaration":77264,"src":"29332:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"29331:32:168"},"returnParameters":{"id":86860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86878,"src":"29387:18:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86858,"nodeType":"UserDefinedTypeName","pathNode":{"id":86857,"name":"Validators","nameLocations":["29387:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"29387:10:168"},"referencedDeclaration":85953,"src":"29387:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29386:20:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86906,"nodeType":"FunctionDefinition","src":"29760:312:168","nodes":[],"body":{"id":86905,"nodeType":"Block","src":"29869:203:168","nodes":[],"statements":[{"condition":{"arguments":[{"id":86891,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86882,"src":"29909:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":86892,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86884,"src":"29917:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86890,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86973,"src":"29883:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":86893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29883:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86903,"nodeType":"Block","src":"29997:69:168","statements":[{"expression":{"expression":{"expression":{"id":86899,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86882,"src":"30018:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30025:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"30018:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30044:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86211,"src":"30018:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":86889,"id":86902,"nodeType":"Return","src":"30011:44:168"}]},"id":86904,"nodeType":"IfStatement","src":"29879:187:168","trueBody":{"id":86898,"nodeType":"Block","src":"29922:69:168","statements":[{"expression":{"expression":{"expression":{"id":86894,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86882,"src":"29943:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29950:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"29943:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29969:11:168","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":86214,"src":"29943:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":86889,"id":86897,"nodeType":"Return","src":"29936:44:168"}]}}]},"documentation":{"id":86879,"nodeType":"StructuredDocumentation","src":"29629:126:168","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":"29769:12:168","parameters":{"id":86885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86882,"mutability":"mutable","name":"router","nameLocation":"29806:6:168","nodeType":"VariableDeclaration","scope":86906,"src":"29782:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86881,"nodeType":"UserDefinedTypeName","pathNode":{"id":86880,"name":"IRouter.Storage","nameLocations":["29782:7:168","29790:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"29782:15:168"},"referencedDeclaration":77264,"src":"29782:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":86884,"mutability":"mutable","name":"ts","nameLocation":"29822:2:168","nodeType":"VariableDeclaration","scope":86906,"src":"29814:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86883,"name":"uint256","nodeType":"ElementaryTypeName","src":"29814:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29781:44:168"},"returnParameters":{"id":86889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86906,"src":"29849:18:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86887,"nodeType":"UserDefinedTypeName","pathNode":{"id":86886,"name":"Validators","nameLocations":["29849:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"29849:10:168"},"referencedDeclaration":85953,"src":"29849:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29848:20:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86973,"nodeType":"FunctionDefinition","src":"30479:863:168","nodes":[],"body":{"id":86972,"nodeType":"Block","src":"30623:719:168","nodes":[],"statements":[{"assignments":[86918],"declarations":[{"constant":false,"id":86918,"mutability":"mutable","name":"ts0","nameLocation":"30641:3:168","nodeType":"VariableDeclaration","scope":86972,"src":"30633:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86917,"name":"uint256","nodeType":"ElementaryTypeName","src":"30633:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86923,"initialValue":{"expression":{"expression":{"expression":{"id":86919,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86910,"src":"30647:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30654:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"30647:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30673:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86211,"src":"30647:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}},"id":86922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30685:16:168","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85952,"src":"30647:54:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30633:68:168"},{"assignments":[86925],"declarations":[{"constant":false,"id":86925,"mutability":"mutable","name":"ts1","nameLocation":"30719:3:168","nodeType":"VariableDeclaration","scope":86972,"src":"30711:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86924,"name":"uint256","nodeType":"ElementaryTypeName","src":"30711:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86930,"initialValue":{"expression":{"expression":{"expression":{"id":86926,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86910,"src":"30725:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30732:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"30725:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30751:11:168","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":86214,"src":"30725:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}},"id":86929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30763:16:168","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85952,"src":"30725:54:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30711:68:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86932,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86918,"src":"30853:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":86933,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86925,"src":"30860:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30853:10:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86935,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85923,"src":"30865:27:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30865:29:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86931,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30845:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30845:50:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86938,"nodeType":"ExpressionStatement","src":"30845:50:168"},{"assignments":[86940],"declarations":[{"constant":false,"id":86940,"mutability":"mutable","name":"ts1Greater","nameLocation":"30911:10:168","nodeType":"VariableDeclaration","scope":86972,"src":"30906:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86939,"name":"bool","nodeType":"ElementaryTypeName","src":"30906:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":86944,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86941,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86918,"src":"30924:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86942,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86925,"src":"30930:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30924:9:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30906:27:168"},{"assignments":[86946],"declarations":[{"constant":false,"id":86946,"mutability":"mutable","name":"tsGe0","nameLocation":"30948:5:168","nodeType":"VariableDeclaration","scope":86972,"src":"30943:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86945,"name":"bool","nodeType":"ElementaryTypeName","src":"30943:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":86950,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86947,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86918,"src":"30956:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":86948,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86912,"src":"30963:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30956:9:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30943:22:168"},{"assignments":[86952],"declarations":[{"constant":false,"id":86952,"mutability":"mutable","name":"tsGe1","nameLocation":"30980:5:168","nodeType":"VariableDeclaration","scope":86972,"src":"30975:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86951,"name":"bool","nodeType":"ElementaryTypeName","src":"30975:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":86956,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86953,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86925,"src":"30988:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":86954,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86912,"src":"30995:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30988:9:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30975:22:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86958,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86946,"src":"31089:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":86959,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86952,"src":"31098:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31089:14:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86961,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85926,"src":"31105:30:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31105:32:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86957,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31081:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31081:57:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86964,"nodeType":"ExpressionStatement","src":"31081:57:168"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86965,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86940,"src":"31305:10:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86966,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86946,"src":"31320:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86967,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86952,"src":"31329:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31320:14:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":86969,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31319:16:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31305:30:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":86916,"id":86971,"nodeType":"Return","src":"31298:37:168"}]},"documentation":{"id":86907,"nodeType":"StructuredDocumentation","src":"30078:396:168","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":"30488:25:168","parameters":{"id":86913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86910,"mutability":"mutable","name":"router","nameLocation":"30538:6:168","nodeType":"VariableDeclaration","scope":86973,"src":"30514:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86909,"nodeType":"UserDefinedTypeName","pathNode":{"id":86908,"name":"IRouter.Storage","nameLocations":["30514:7:168","30522:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"30514:15:168"},"referencedDeclaration":77264,"src":"30514:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":86912,"mutability":"mutable","name":"ts","nameLocation":"30554:2:168","nodeType":"VariableDeclaration","scope":86973,"src":"30546:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86911,"name":"uint256","nodeType":"ElementaryTypeName","src":"30546:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30513:44:168"},"returnParameters":{"id":86916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86915,"mutability":"mutable","name":"isSlot1","nameLocation":"30610:7:168","nodeType":"VariableDeclaration","scope":86973,"src":"30605:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86914,"name":"bool","nodeType":"ElementaryTypeName","src":"30605:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30604:14:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87019,"nodeType":"FunctionDefinition","src":"31844:456:168","nodes":[],"body":{"id":87018,"nodeType":"Block","src":"32027:273:168","nodes":[],"statements":[{"assignments":[86986],"declarations":[{"constant":false,"id":86986,"mutability":"mutable","name":"a","nameLocation":"32045:1:168","nodeType":"VariableDeclaration","scope":87018,"src":"32037:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86985,"name":"uint256","nodeType":"ElementaryTypeName","src":"32037:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86987,"nodeType":"VariableDeclarationStatement","src":"32037:9:168"},{"id":86994,"nodeType":"UncheckedBlock","src":"32056:76:168","statements":[{"expression":{"id":86992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86988,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86986,"src":"32080:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86989,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86976,"src":"32084:16:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":86990,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86978,"src":"32103:18:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32084:37:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32080:41:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86993,"nodeType":"ExpressionStatement","src":"32080:41:168"}]},{"assignments":[86996],"declarations":[{"constant":false,"id":86996,"mutability":"mutable","name":"d","nameLocation":"32149:1:168","nodeType":"VariableDeclaration","scope":87018,"src":"32141:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86995,"name":"uint256","nodeType":"ElementaryTypeName","src":"32141:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":87000,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86997,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86986,"src":"32153:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":86998,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86980,"src":"32157:20:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32153:24:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32141:36:168"},{"assignments":[87002],"declarations":[{"constant":false,"id":87002,"mutability":"mutable","name":"r","nameLocation":"32195:1:168","nodeType":"VariableDeclaration","scope":87018,"src":"32187:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87001,"name":"uint256","nodeType":"ElementaryTypeName","src":"32187:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":87006,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87003,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86986,"src":"32199:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":87004,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86980,"src":"32203:20:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32199:24:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32187:36:168"},{"id":87017,"nodeType":"UncheckedBlock","src":"32233:61:168","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87007,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87002,"src":"32265:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":87008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32269:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32265:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":87010,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32264:7:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":87014,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86996,"src":"32282:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":87015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"32264:19:168","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87011,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86996,"src":"32274:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":87012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32278:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32274:5:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86984,"id":87016,"nodeType":"Return","src":"32257:26:168"}]}]},"documentation":{"id":86974,"nodeType":"StructuredDocumentation","src":"31348:491:168","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":"31853:19:168","parameters":{"id":86981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86976,"mutability":"mutable","name":"validatorsAmount","nameLocation":"31881:16:168","nodeType":"VariableDeclaration","scope":87019,"src":"31873:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86975,"name":"uint256","nodeType":"ElementaryTypeName","src":"31873:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86978,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"31907:18:168","nodeType":"VariableDeclaration","scope":87019,"src":"31899:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86977,"name":"uint128","nodeType":"ElementaryTypeName","src":"31899:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86980,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"31935:20:168","nodeType":"VariableDeclaration","scope":87019,"src":"31927:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86979,"name":"uint128","nodeType":"ElementaryTypeName","src":"31927:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"31872:84:168"},"returnParameters":{"id":86984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86983,"mutability":"mutable","name":"threshold","nameLocation":"32012:9:168","nodeType":"VariableDeclaration","scope":87019,"src":"32004:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86982,"name":"uint256","nodeType":"ElementaryTypeName","src":"32004:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32003:19:168"},"scope":87132,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87042,"nodeType":"FunctionDefinition","src":"32485:179:168","nodes":[],"body":{"id":87041,"nodeType":"Block","src":"32581:83:168","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87030,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87025,"src":"32599:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":87031,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87023,"src":"32604:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32611:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"32604:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":87033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32624:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86104,"src":"32604:29:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"32599:34:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":87035,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32598:36:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":87036,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87023,"src":"32637:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32644:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"32637:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"id":87038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32654:3:168","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86198,"src":"32637:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32598:59:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":87029,"id":87040,"nodeType":"Return","src":"32591:66:168"}]},"documentation":{"id":87020,"nodeType":"StructuredDocumentation","src":"32306:174:168","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":"32494:10:168","parameters":{"id":87026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87023,"mutability":"mutable","name":"router","nameLocation":"32529:6:168","nodeType":"VariableDeclaration","scope":87042,"src":"32505:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":87022,"nodeType":"UserDefinedTypeName","pathNode":{"id":87021,"name":"IRouter.Storage","nameLocations":["32505:7:168","32513:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"32505:15:168"},"referencedDeclaration":77264,"src":"32505:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":87025,"mutability":"mutable","name":"ts","nameLocation":"32545:2:168","nodeType":"VariableDeclaration","scope":87042,"src":"32537:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87024,"name":"uint256","nodeType":"ElementaryTypeName","src":"32537:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32504:44:168"},"returnParameters":{"id":87029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87042,"src":"32572:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87027,"name":"uint256","nodeType":"ElementaryTypeName","src":"32572:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32571:9:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87067,"nodeType":"FunctionDefinition","src":"32880:199:168","nodes":[],"body":{"id":87066,"nodeType":"Block","src":"32978:101:168","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":87053,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87046,"src":"32995:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33002:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"32995:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":87055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33015:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86104,"src":"32995:29:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":87057,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87046,"src":"33038:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":87058,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87048,"src":"33046:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87056,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87042,"src":"33027:10:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":87059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33027:22:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":87060,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87046,"src":"33052:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33059:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"33052:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"id":87062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33069:3:168","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86198,"src":"33052:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33027:45:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32995:77:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":87052,"id":87065,"nodeType":"Return","src":"32988:84:168"}]},"documentation":{"id":87043,"nodeType":"StructuredDocumentation","src":"32670:205:168","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":"32889:12:168","parameters":{"id":87049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87046,"mutability":"mutable","name":"router","nameLocation":"32926:6:168","nodeType":"VariableDeclaration","scope":87067,"src":"32902:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":87045,"nodeType":"UserDefinedTypeName","pathNode":{"id":87044,"name":"IRouter.Storage","nameLocations":["32902:7:168","32910:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"32902:15:168"},"referencedDeclaration":77264,"src":"32902:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":87048,"mutability":"mutable","name":"ts","nameLocation":"32942:2:168","nodeType":"VariableDeclaration","scope":87067,"src":"32934:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87047,"name":"uint256","nodeType":"ElementaryTypeName","src":"32934:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32901:44:168"},"returnParameters":{"id":87052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87067,"src":"32969:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87050,"name":"uint256","nodeType":"ElementaryTypeName","src":"32969:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32968:9:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87090,"nodeType":"FunctionDefinition","src":"33419:467:168","nodes":[],"body":{"id":87089,"nodeType":"Block","src":"33565:321:168","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":87079,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87071,"src":"33637:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":87080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33648:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85937,"src":"33637:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":87081,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87071,"src":"33723:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":87082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33734:40:168","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":85940,"src":"33723:51:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":87083,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87071,"src":"33794:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":87084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33805:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85949,"src":"33794:15:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":87085,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87071,"src":"33841:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":87086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33852:16:168","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85952,"src":"33841:27:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_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":87077,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"33582:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":87078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33587:14:168","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":85965,"src":"33582:19:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$85965_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":87087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["33616:19:168","33681:40:168","33788:4:168","33823:16:168"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"33582:297:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":87076,"id":87088,"nodeType":"Return","src":"33575:304:168"}]},"documentation":{"id":87068,"nodeType":"StructuredDocumentation","src":"33085:329:168","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":"33428:6:168","parameters":{"id":87072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87071,"mutability":"mutable","name":"validators","nameLocation":"33459:10:168","nodeType":"VariableDeclaration","scope":87090,"src":"33435:34:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":87070,"nodeType":"UserDefinedTypeName","pathNode":{"id":87069,"name":"Gear.Validators","nameLocations":["33435:4:168","33440:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"33435:15:168"},"referencedDeclaration":85953,"src":"33435:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"33434:36:168"},"returnParameters":{"id":87076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87075,"mutability":"mutable","name":"validatorsView","nameLocation":"33545:14:168","nodeType":"VariableDeclaration","scope":87090,"src":"33518:41:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":87074,"nodeType":"UserDefinedTypeName","pathNode":{"id":87073,"name":"Gear.ValidatorsView","nameLocations":["33518:4:168","33523:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":85965,"src":"33518:19:168"},"referencedDeclaration":85965,"src":"33518:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"33517:43:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87131,"nodeType":"FunctionDefinition","src":"34183:581:168","nodes":[],"body":{"id":87130,"nodeType":"Block","src":"34341:423:168","nodes":[],"statements":[{"assignments":[87104],"declarations":[{"constant":false,"id":87104,"mutability":"mutable","name":"validators0","nameLocation":"34378:11:168","nodeType":"VariableDeclaration","scope":87130,"src":"34351:38:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":87103,"nodeType":"UserDefinedTypeName","pathNode":{"id":87102,"name":"Gear.ValidatorsView","nameLocations":["34351:4:168","34356:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":85965,"src":"34351:19:168"},"referencedDeclaration":85965,"src":"34351:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":87109,"initialValue":{"arguments":[{"expression":{"id":87106,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87094,"src":"34399:8:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":87107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34408:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86211,"src":"34399:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}],"id":87105,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[87090,87131],"referencedDeclaration":87090,"src":"34392:6:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$85953_storage_ptr_$returns$_t_struct$_ValidatorsView_$85965_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":87108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34392:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34351:69:168"},{"assignments":[87114],"declarations":[{"constant":false,"id":87114,"mutability":"mutable","name":"validators1","nameLocation":"34457:11:168","nodeType":"VariableDeclaration","scope":87130,"src":"34430:38:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":87113,"nodeType":"UserDefinedTypeName","pathNode":{"id":87112,"name":"Gear.ValidatorsView","nameLocations":["34430:4:168","34435:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":85965,"src":"34430:19:168"},"referencedDeclaration":85965,"src":"34430:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":87119,"initialValue":{"arguments":[{"expression":{"id":87116,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87094,"src":"34478:8:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":87117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34487:11:168","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":86214,"src":"34478:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}],"id":87115,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[87090,87131],"referencedDeclaration":87090,"src":"34471:6:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$85953_storage_ptr_$returns$_t_struct$_ValidatorsView_$85965_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":87118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34471:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34430:69:168"},{"expression":{"arguments":[{"expression":{"id":87122,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87094,"src":"34578:8:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":87123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34587:18:168","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86206,"src":"34578:27:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":87124,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87094,"src":"34641:8:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":87125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34650:20:168","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"34641:29:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":87126,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87104,"src":"34697:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":87127,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87114,"src":"34735:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$85965_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":87120,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"34516:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":87121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34521:22:168","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":86227,"src":"34516:27:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$86227_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":87128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["34558:18:168","34619:20:168","34684:11:168","34722:11:168"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"34516:241:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86227_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":87099,"id":87129,"nodeType":"Return","src":"34509:248:168"}]},"documentation":{"id":87091,"nodeType":"StructuredDocumentation","src":"33892:286:168","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":"34192:6:168","parameters":{"id":87095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87094,"mutability":"mutable","name":"settings","nameLocation":"34231:8:168","nodeType":"VariableDeclaration","scope":87131,"src":"34199:40:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":87093,"nodeType":"UserDefinedTypeName","pathNode":{"id":87092,"name":"Gear.ValidationSettings","nameLocations":["34199:4:168","34204:18:168"],"nodeType":"IdentifierPath","referencedDeclaration":86215,"src":"34199:23:168"},"referencedDeclaration":86215,"src":"34199:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"34198:42:168"},"returnParameters":{"id":87099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87098,"mutability":"mutable","name":"settingsView","nameLocation":"34323:12:168","nodeType":"VariableDeclaration","scope":87131,"src":"34288:47:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86227_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":87097,"nodeType":"UserDefinedTypeName","pathNode":{"id":87096,"name":"Gear.ValidationSettingsView","nameLocations":["34288:4:168","34293:22:168"],"nodeType":"IdentifierPath","referencedDeclaration":86227,"src":"34288:27:168"},"referencedDeclaration":86227,"src":"34288:27:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86227_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"34287:49:168"},"scope":87132,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":85879,"nodeType":"StructuredDocumentation","src":"784:770:168","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":[87132],"name":"Gear","nameLocation":"1563:4:168","scope":87133,"usedErrors":[85908,85911,85914,85917,85920,85923,85926],"usedEvents":[]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":168} \ 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":"1555:33663:168:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1555:33663:168:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1555:33663:168;;;;;;;2111:1;1555:33663;;;;;;;;;;-1:-1:-1;;1555:33663:168;;;;;;;1895:13;1555:33663;;;;;;-1:-1:-1;;1555:33663:168;;;;;;;2423:18;1555:33663;;;;;;-1:-1:-1;;1555:33663:168;;;;;2243:1;1555:33663;;;","linkReferences":{}},"methodIdentifiers":{"COMPUTATION_THRESHOLD()":"7841919a","VALIDATORS_THRESHOLD_DENOMINATOR()":"0279472c","VALIDATORS_THRESHOLD_NUMERATOR()":"db3fe3f1","WVARA_PER_SECOND()":"2c184e1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5\",\"dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/libraries/Gear.sol":"Gear"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a","urls":["bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5","dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":87301,"exportedSymbols":{"ECDSA":[9016],"FROST":[62425],"Gear":[87300],"Hashes":[62943],"IRouter":[77796],"MessageHashUtils":[10300],"SafeCast":[13734],"SlotDerivation":[6724],"Time":[18907],"TransientSlot":[8557]},"nodeType":"SourceUnit","src":"114:35105:168","nodes":[{"id":86014,"nodeType":"PragmaDirective","src":"114:24:168","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":86016,"nodeType":"ImportDirective","src":"140:80:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":87301,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":86015,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"148:14:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86018,"nodeType":"ImportDirective","src":"221:78:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol","file":"@openzeppelin/contracts/utils/TransientSlot.sol","nameLocation":"-1:-1:-1","scope":87301,"sourceUnit":8558,"symbolAliases":[{"foreign":{"id":86017,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"229:13:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86020,"nodeType":"ImportDirective","src":"300:75:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":87301,"sourceUnit":9017,"symbolAliases":[{"foreign":{"id":86019,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"308:5:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86022,"nodeType":"ImportDirective","src":"376:97:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":87301,"sourceUnit":10301,"symbolAliases":[{"foreign":{"id":86021,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10300,"src":"384:16:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86024,"nodeType":"ImportDirective","src":"474:73:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","nameLocation":"-1:-1:-1","scope":87301,"sourceUnit":13735,"symbolAliases":[{"foreign":{"id":86023,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"482:8:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86026,"nodeType":"ImportDirective","src":"548:66:168","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":87301,"sourceUnit":18908,"symbolAliases":[{"foreign":{"id":86025,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"556:4:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86028,"nodeType":"ImportDirective","src":"615:52:168","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":87301,"sourceUnit":62426,"symbolAliases":[{"foreign":{"id":86027,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62425,"src":"623:5:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86030,"nodeType":"ImportDirective","src":"668:73:168","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":87301,"sourceUnit":62944,"symbolAliases":[{"foreign":{"id":86029,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"676:6:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86032,"nodeType":"ImportDirective","src":"742:40:168","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":87301,"sourceUnit":77797,"symbolAliases":[{"foreign":{"id":86031,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77796,"src":"750:7:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87300,"nodeType":"ContractDefinition","src":"1555:33663:168","nodes":[{"id":86036,"nodeType":"UsingForDirective","src":"1574:24:168","nodes":[],"global":false,"libraryName":{"id":86034,"name":"ECDSA","nameLocations":["1580:5:168"],"nodeType":"IdentifierPath","referencedDeclaration":9016,"src":"1580:5:168"},"typeName":{"id":86035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1590:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":86039,"nodeType":"UsingForDirective","src":"1603:35:168","nodes":[],"global":false,"libraryName":{"id":86037,"name":"MessageHashUtils","nameLocations":["1609:16:168"],"nodeType":"IdentifierPath","referencedDeclaration":10300,"src":"1609:16:168"},"typeName":{"id":86038,"name":"address","nodeType":"ElementaryTypeName","src":"1630:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":86041,"nodeType":"UsingForDirective","src":"1644:26:168","nodes":[],"global":false,"libraryName":{"id":86040,"name":"TransientSlot","nameLocations":["1650:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":8557,"src":"1650:13:168"}},{"id":86043,"nodeType":"UsingForDirective","src":"1675:27:168","nodes":[],"global":false,"libraryName":{"id":86042,"name":"SlotDerivation","nameLocations":["1681:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":6724,"src":"1681:14:168"}},{"id":86047,"nodeType":"VariableDeclaration","src":"1848:60:168","nodes":[],"constant":true,"documentation":{"id":86044,"nodeType":"StructuredDocumentation","src":"1731:112:168","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":"1871:21:168","scope":87300,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":86045,"name":"uint64","nodeType":"ElementaryTypeName","src":"1848:6:168","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":86046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1895:13:168","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"visibility":"public"},{"id":86051,"nodeType":"VariableDeclaration","src":"2054:58:168","nodes":[],"constant":true,"documentation":{"id":86048,"nodeType":"StructuredDocumentation","src":"1915:134:168","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":"2078:30:168","scope":87300,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86049,"name":"uint128","nodeType":"ElementaryTypeName","src":"2054:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":86050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2111:1:168","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":86055,"nodeType":"VariableDeclaration","src":"2184:60:168","nodes":[],"constant":true,"documentation":{"id":86052,"nodeType":"StructuredDocumentation","src":"2118:61:168","text":" @dev The validators threshold denominator."},"functionSelector":"0279472c","mutability":"constant","name":"VALIDATORS_THRESHOLD_DENOMINATOR","nameLocation":"2208:32:168","scope":87300,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86053,"name":"uint128","nodeType":"ElementaryTypeName","src":"2184:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":86054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2243:1:168","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"public"},{"id":86059,"nodeType":"VariableDeclaration","src":"2380:61:168","nodes":[],"constant":true,"documentation":{"id":86056,"nodeType":"StructuredDocumentation","src":"2251:124:168","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":"2404:16:168","scope":87300,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86057,"name":"uint128","nodeType":"ElementaryTypeName","src":"2380:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":86058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2423:18:168","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000_by_1","typeString":"int_const 10000000000000"},"value":"10_000_000_000_000"},"visibility":"public"},{"id":86062,"nodeType":"ErrorDefinition","src":"2568:32:168","nodes":[],"documentation":{"id":86060,"nodeType":"StructuredDocumentation","src":"2468:95:168","text":" @dev Thrown when signature validation is attempted before the genesis block."},"errorSelector":"00f4462b","name":"ValidationBeforeGenesis","nameLocation":"2574:23:168","parameters":{"id":86061,"nodeType":"ParameterList","parameters":[],"src":"2597:2:168"}},{"id":86065,"nodeType":"ErrorDefinition","src":"2692:38:168","nodes":[],"documentation":{"id":86063,"nodeType":"StructuredDocumentation","src":"2606:81:168","text":" @dev Thrown when the timestamp is older than the previous era."},"errorSelector":"8d763ca0","name":"TimestampOlderThanPreviousEra","nameLocation":"2698:29:168","parameters":{"id":86064,"nodeType":"ParameterList","parameters":[],"src":"2727:2:168"}},{"id":86068,"nodeType":"ErrorDefinition","src":"2808:26:168","nodes":[],"documentation":{"id":86066,"nodeType":"StructuredDocumentation","src":"2736:67:168","text":" @dev Thrown when the timestamp is in the future."},"errorSelector":"47860b97","name":"TimestampInFuture","nameLocation":"2814:17:168","parameters":{"id":86067,"nodeType":"ParameterList","parameters":[],"src":"2831:2:168"}},{"id":86071,"nodeType":"ErrorDefinition","src":"2923:35:168","nodes":[],"documentation":{"id":86069,"nodeType":"StructuredDocumentation","src":"2840:78:168","text":" @dev Thrown when the number of FROST signatures is invalid."},"errorSelector":"60a1ea77","name":"InvalidFrostSignatureCount","nameLocation":"2929:26:168","parameters":{"id":86070,"nodeType":"ParameterList","parameters":[],"src":"2955:2:168"}},{"id":86074,"nodeType":"ErrorDefinition","src":"3077:36:168","nodes":[],"documentation":{"id":86072,"nodeType":"StructuredDocumentation","src":"2964:108:168","text":" @dev Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes."},"errorSelector":"2ce466bf","name":"InvalidFrostSignatureLength","nameLocation":"3083:27:168","parameters":{"id":86073,"nodeType":"ParameterList","parameters":[],"src":"3110:2:168"}},{"id":86077,"nodeType":"ErrorDefinition","src":"3291:36:168","nodes":[],"documentation":{"id":86075,"nodeType":"StructuredDocumentation","src":"3119:167:168","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":"3297:27:168","parameters":{"id":86076,"nodeType":"ParameterList","parameters":[],"src":"3324:2:168"}},{"id":86080,"nodeType":"ErrorDefinition","src":"3481:39:168","nodes":[],"documentation":{"id":86078,"nodeType":"StructuredDocumentation","src":"3333:143:168","text":" @dev Thrown when no validators are found for a given timestamp.\n Should never happen, because the implementation."},"errorSelector":"98715d2a","name":"ValidatorsNotFoundForTimestamp","nameLocation":"3487:30:168","parameters":{"id":86079,"nodeType":"ParameterList","parameters":[],"src":"3517:2:168"}},{"id":86086,"nodeType":"StructDefinition","src":"3808:72:168","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":86081,"nodeType":"StructuredDocumentation","src":"3547:256:168","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":86083,"mutability":"mutable","name":"x","nameLocation":"3853:1:168","nodeType":"VariableDeclaration","scope":86086,"src":"3845:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86082,"name":"uint256","nodeType":"ElementaryTypeName","src":"3845:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86085,"mutability":"mutable","name":"y","nameLocation":"3872:1:168","nodeType":"VariableDeclaration","scope":86086,"src":"3864:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86084,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"3815:19:168","scope":87300,"visibility":"public"},{"id":86107,"nodeType":"StructDefinition","src":"3949:1200:168","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":86087,"nodeType":"StructuredDocumentation","src":"3886:58:168","text":" @dev Represents validators information."},"members":[{"constant":false,"id":86091,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4339:19:168","nodeType":"VariableDeclaration","scope":86107,"src":"4319:39:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":86090,"nodeType":"UserDefinedTypeName","pathNode":{"id":86089,"name":"AggregatedPublicKey","nameLocations":["4319:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":86086,"src":"4319:19:168"},"referencedDeclaration":86086,"src":"4319:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":86094,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4666:40:168","nodeType":"VariableDeclaration","scope":86107,"src":"4658:48:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86093,"name":"address","nodeType":"ElementaryTypeName","src":"4658:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86099,"mutability":"mutable","name":"map","nameLocation":"4924:3:168","nodeType":"VariableDeclaration","scope":86107,"src":"4899:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":86098,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":86096,"name":"address","nodeType":"ElementaryTypeName","src":"4907:7:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4899:24:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":86097,"name":"bool","nodeType":"ElementaryTypeName","src":"4918:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":86103,"mutability":"mutable","name":"list","nameLocation":"5016:4:168","nodeType":"VariableDeclaration","scope":86107,"src":"5006:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":86101,"name":"address","nodeType":"ElementaryTypeName","src":"5006:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86102,"nodeType":"ArrayTypeName","src":"5006:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":86106,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5126:16:168","nodeType":"VariableDeclaration","scope":86107,"src":"5118:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86105,"name":"uint256","nodeType":"ElementaryTypeName","src":"5118:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"3956:10:168","scope":87300,"visibility":"public"},{"id":86119,"nodeType":"StructDefinition","src":"5226:194:168","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":86108,"nodeType":"StructuredDocumentation","src":"5155:66:168","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":86111,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5278:19:168","nodeType":"VariableDeclaration","scope":86119,"src":"5258:39:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":86110,"nodeType":"UserDefinedTypeName","pathNode":{"id":86109,"name":"AggregatedPublicKey","nameLocations":["5258:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":86086,"src":"5258:19:168"},"referencedDeclaration":86086,"src":"5258:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":86113,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5315:40:168","nodeType":"VariableDeclaration","scope":86119,"src":"5307:48:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86112,"name":"address","nodeType":"ElementaryTypeName","src":"5307:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86116,"mutability":"mutable","name":"list","nameLocation":"5375:4:168","nodeType":"VariableDeclaration","scope":86119,"src":"5365:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":86114,"name":"address","nodeType":"ElementaryTypeName","src":"5365:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86115,"nodeType":"ArrayTypeName","src":"5365:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":86118,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5397:16:168","nodeType":"VariableDeclaration","scope":86119,"src":"5389:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86117,"name":"uint256","nodeType":"ElementaryTypeName","src":"5389:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5233:14:168","scope":87300,"visibility":"public"},{"id":86130,"nodeType":"StructDefinition","src":"5491:353:168","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":86120,"nodeType":"StructuredDocumentation","src":"5426:60:168","text":" @dev Represents address book information."},"members":[{"constant":false,"id":86123,"mutability":"mutable","name":"mirror","nameLocation":"5606:6:168","nodeType":"VariableDeclaration","scope":86130,"src":"5598:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86122,"name":"address","nodeType":"ElementaryTypeName","src":"5598:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86126,"mutability":"mutable","name":"wrappedVara","nameLocation":"5713:11:168","nodeType":"VariableDeclaration","scope":86130,"src":"5705:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86125,"name":"address","nodeType":"ElementaryTypeName","src":"5705:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86129,"mutability":"mutable","name":"middleware","nameLocation":"5827:10:168","nodeType":"VariableDeclaration","scope":86130,"src":"5819:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86128,"name":"address","nodeType":"ElementaryTypeName","src":"5819:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5498:11:168","scope":87300,"visibility":"public"},{"id":86138,"nodeType":"StructDefinition","src":"5906:248:168","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":86131,"nodeType":"StructuredDocumentation","src":"5850:51:168","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":86134,"mutability":"mutable","name":"id","nameLocation":"6050:2:168","nodeType":"VariableDeclaration","scope":86138,"src":"6042:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6042:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86137,"mutability":"mutable","name":"valid","nameLocation":"6142:5:168","nodeType":"VariableDeclaration","scope":86138,"src":"6137:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86136,"name":"bool","nodeType":"ElementaryTypeName","src":"6137:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"5913:14:168","scope":87300,"visibility":"public"},{"id":86151,"nodeType":"StructDefinition","src":"6217:541:168","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":86139,"nodeType":"StructuredDocumentation","src":"6160:52:168","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":86144,"mutability":"mutable","name":"transitions","nameLocation":"6359:11:168","nodeType":"VariableDeclaration","scope":86151,"src":"6341:29:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86357_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":86142,"nodeType":"UserDefinedTypeName","pathNode":{"id":86141,"name":"StateTransition","nameLocations":["6341:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":86357,"src":"6341:15:168"},"referencedDeclaration":86357,"src":"6341:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":86143,"nodeType":"ArrayTypeName","src":"6341:17:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86357_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":86147,"mutability":"mutable","name":"head","nameLocation":"6476:4:168","nodeType":"VariableDeclaration","scope":86151,"src":"6468:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6468:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86150,"mutability":"mutable","name":"lastAdvancedEthBlock","nameLocation":"6731:20:168","nodeType":"VariableDeclaration","scope":86151,"src":"6723:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6723:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6224:15:168","scope":87300,"visibility":"public"},{"id":86165,"nodeType":"StructDefinition","src":"6826:226:168","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":86152,"nodeType":"StructuredDocumentation","src":"6764:57:168","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":86154,"mutability":"mutable","name":"hasAggregatedPublicKey","nameLocation":"6869:22:168","nodeType":"VariableDeclaration","scope":86165,"src":"6864:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86153,"name":"bool","nodeType":"ElementaryTypeName","src":"6864:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86157,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"6921:19:168","nodeType":"VariableDeclaration","scope":86165,"src":"6901:39:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":86156,"nodeType":"UserDefinedTypeName","pathNode":{"id":86155,"name":"AggregatedPublicKey","nameLocations":["6901:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":86086,"src":"6901:19:168"},"referencedDeclaration":86086,"src":"6901:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":86159,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"6956:33:168","nodeType":"VariableDeclaration","scope":86165,"src":"6950:39:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":86158,"name":"bytes","nodeType":"ElementaryTypeName","src":"6950:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86162,"mutability":"mutable","name":"validators","nameLocation":"7009:10:168","nodeType":"VariableDeclaration","scope":86165,"src":"6999:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":86160,"name":"address","nodeType":"ElementaryTypeName","src":"6999:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86161,"nodeType":"ArrayTypeName","src":"6999:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":86164,"mutability":"mutable","name":"eraIndex","nameLocation":"7037:8:168","nodeType":"VariableDeclaration","scope":86165,"src":"7029:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86163,"name":"uint256","nodeType":"ElementaryTypeName","src":"7029:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"6833:20:168","scope":87300,"visibility":"public"},{"id":86199,"nodeType":"StructDefinition","src":"7115:1206:168","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":86166,"nodeType":"StructuredDocumentation","src":"7058:52:168","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":86169,"mutability":"mutable","name":"blockHash","nameLocation":"7252:9:168","nodeType":"VariableDeclaration","scope":86199,"src":"7244:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7244:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86172,"mutability":"mutable","name":"blockTimestamp","nameLocation":"7380:14:168","nodeType":"VariableDeclaration","scope":86199,"src":"7373:21:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86171,"name":"uint48","nodeType":"ElementaryTypeName","src":"7373:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":86175,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7493:26:168","nodeType":"VariableDeclaration","scope":86199,"src":"7485:34:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7485:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86178,"mutability":"mutable","name":"expiry","nameLocation":"7755:6:168","nodeType":"VariableDeclaration","scope":86199,"src":"7749:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":86177,"name":"uint8","nodeType":"ElementaryTypeName","src":"7749:5:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":86183,"mutability":"mutable","name":"chainCommitment","nameLocation":"7881:15:168","nodeType":"VariableDeclaration","scope":86199,"src":"7863:33:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$86151_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":86181,"nodeType":"UserDefinedTypeName","pathNode":{"id":86180,"name":"ChainCommitment","nameLocations":["7863:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":86151,"src":"7863:15:168"},"referencedDeclaration":86151,"src":"7863:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":86182,"nodeType":"ArrayTypeName","src":"7863:17:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$86151_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":86188,"mutability":"mutable","name":"codeCommitments","nameLocation":"8008:15:168","nodeType":"VariableDeclaration","scope":86199,"src":"7991:32:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$86138_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":86186,"nodeType":"UserDefinedTypeName","pathNode":{"id":86185,"name":"CodeCommitment","nameLocations":["7991:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":86138,"src":"7991:14:168"},"referencedDeclaration":86138,"src":"7991:14:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":86187,"nodeType":"ArrayTypeName","src":"7991:16:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$86138_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":86193,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"8147:17:168","nodeType":"VariableDeclaration","scope":86199,"src":"8127:37:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86209_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":86191,"nodeType":"UserDefinedTypeName","pathNode":{"id":86190,"name":"RewardsCommitment","nameLocations":["8127:17:168"],"nodeType":"IdentifierPath","referencedDeclaration":86209,"src":"8127:17:168"},"referencedDeclaration":86209,"src":"8127:17:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":86192,"nodeType":"ArrayTypeName","src":"8127:19:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86209_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":86198,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"8294:20:168","nodeType":"VariableDeclaration","scope":86199,"src":"8271:43:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86165_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":86196,"nodeType":"UserDefinedTypeName","pathNode":{"id":86195,"name":"ValidatorsCommitment","nameLocations":["8271:20:168"],"nodeType":"IdentifierPath","referencedDeclaration":86165,"src":"8271:20:168"},"referencedDeclaration":86165,"src":"8271:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":86197,"nodeType":"ArrayTypeName","src":"8271:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86165_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"7122:15:168","scope":87300,"visibility":"public"},{"id":86209,"nodeType":"StructDefinition","src":"8386:144:168","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":86200,"nodeType":"StructuredDocumentation","src":"8327:54:168","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":86203,"mutability":"mutable","name":"operators","nameLocation":"8447:9:168","nodeType":"VariableDeclaration","scope":86209,"src":"8421:35:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86215_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":86202,"nodeType":"UserDefinedTypeName","pathNode":{"id":86201,"name":"OperatorRewardsCommitment","nameLocations":["8421:25:168"],"nodeType":"IdentifierPath","referencedDeclaration":86215,"src":"8421:25:168"},"referencedDeclaration":86215,"src":"8421:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86215_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":86206,"mutability":"mutable","name":"stakers","nameLocation":"8490:7:168","nodeType":"VariableDeclaration","scope":86209,"src":"8466:31:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":86205,"nodeType":"UserDefinedTypeName","pathNode":{"id":86204,"name":"StakerRewardsCommitment","nameLocations":["8466:23:168"],"nodeType":"IdentifierPath","referencedDeclaration":86225,"src":"8466:23:168"},"referencedDeclaration":86225,"src":"8466:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":86208,"mutability":"mutable","name":"timestamp","nameLocation":"8514:9:168","nodeType":"VariableDeclaration","scope":86209,"src":"8507:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86207,"name":"uint48","nodeType":"ElementaryTypeName","src":"8507:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"8393:17:168","scope":87300,"visibility":"public"},{"id":86215,"nodeType":"StructDefinition","src":"8604:86:168","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":86210,"nodeType":"StructuredDocumentation","src":"8536:63:168","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":86212,"mutability":"mutable","name":"amount","nameLocation":"8655:6:168","nodeType":"VariableDeclaration","scope":86215,"src":"8647:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86211,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86214,"mutability":"mutable","name":"root","nameLocation":"8679:4:168","nodeType":"VariableDeclaration","scope":86215,"src":"8671:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8671:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8611:25:168","scope":87300,"visibility":"public"},{"id":86225,"nodeType":"StructDefinition","src":"8762:128:168","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":86216,"nodeType":"StructuredDocumentation","src":"8696:61:168","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":86220,"mutability":"mutable","name":"distribution","nameLocation":"8819:12:168","nodeType":"VariableDeclaration","scope":86225,"src":"8803:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$86231_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":86218,"nodeType":"UserDefinedTypeName","pathNode":{"id":86217,"name":"StakerRewards","nameLocations":["8803:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":86231,"src":"8803:13:168"},"referencedDeclaration":86231,"src":"8803:13:168","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86231_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":86219,"nodeType":"ArrayTypeName","src":"8803:15:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$86231_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":86222,"mutability":"mutable","name":"totalAmount","nameLocation":"8849:11:168","nodeType":"VariableDeclaration","scope":86225,"src":"8841:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86221,"name":"uint256","nodeType":"ElementaryTypeName","src":"8841:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86224,"mutability":"mutable","name":"token","nameLocation":"8878:5:168","nodeType":"VariableDeclaration","scope":86225,"src":"8870:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86223,"name":"address","nodeType":"ElementaryTypeName","src":"8870:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"8769:23:168","scope":87300,"visibility":"public"},{"id":86231,"nodeType":"StructDefinition","src":"8951:75:168","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":86226,"nodeType":"StructuredDocumentation","src":"8896:50:168","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":86228,"mutability":"mutable","name":"vault","nameLocation":"8990:5:168","nodeType":"VariableDeclaration","scope":86231,"src":"8982:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86227,"name":"address","nodeType":"ElementaryTypeName","src":"8982:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86230,"mutability":"mutable","name":"amount","nameLocation":"9013:6:168","nodeType":"VariableDeclaration","scope":86231,"src":"9005:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86229,"name":"uint256","nodeType":"ElementaryTypeName","src":"9005:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"8958:13:168","scope":87300,"visibility":"public"},{"id":86239,"nodeType":"EnumDefinition","src":"9101:960:168","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":86232,"nodeType":"StructuredDocumentation","src":"9032:64:168","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":86233,"nodeType":"StructuredDocumentation","src":"9126:260:168","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":86234,"name":"Unknown","nameLocation":"9395:7:168","nodeType":"EnumValue","src":"9395:7:168"},{"documentation":{"id":86235,"nodeType":"StructuredDocumentation","src":"9412:465:168","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":86236,"name":"ValidationRequested","nameLocation":"9886:19:168","nodeType":"EnumValue","src":"9886:19:168"},{"documentation":{"id":86237,"nodeType":"StructuredDocumentation","src":"9915:122:168","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":86238,"name":"Validated","nameLocation":"10046:9:168","nodeType":"EnumValue","src":"10046:9:168"}],"name":"CodeState","nameLocation":"9106:9:168"},{"id":86245,"nodeType":"StructDefinition","src":"10141:81:168","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":86240,"nodeType":"StructuredDocumentation","src":"10067:69:168","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":86242,"mutability":"mutable","name":"hash","nameLocation":"10185:4:168","nodeType":"VariableDeclaration","scope":86245,"src":"10177:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10177:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86244,"mutability":"mutable","name":"timestamp","nameLocation":"10206:9:168","nodeType":"VariableDeclaration","scope":86245,"src":"10199:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86243,"name":"uint48","nodeType":"ElementaryTypeName","src":"10199:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"10148:18:168","scope":87300,"visibility":"public"},{"id":86251,"nodeType":"StructDefinition","src":"10289:92:168","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":86246,"nodeType":"StructuredDocumentation","src":"10228:56:168","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":86248,"mutability":"mutable","name":"threshold","nameLocation":"10333:9:168","nodeType":"VariableDeclaration","scope":86251,"src":"10326:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":86247,"name":"uint64","nodeType":"ElementaryTypeName","src":"10326:6:168","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":86250,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"10360:14:168","nodeType":"VariableDeclaration","scope":86251,"src":"10352:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86249,"name":"uint128","nodeType":"ElementaryTypeName","src":"10352:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"10296:19:168","scope":87300,"visibility":"public"},{"id":86259,"nodeType":"StructDefinition","src":"10459:102:168","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":86252,"nodeType":"StructuredDocumentation","src":"10387:67:168","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":86254,"mutability":"mutable","name":"hash","nameLocation":"10501:4:168","nodeType":"VariableDeclaration","scope":86259,"src":"10493:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10493:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86256,"mutability":"mutable","name":"number","nameLocation":"10522:6:168","nodeType":"VariableDeclaration","scope":86259,"src":"10515:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":86255,"name":"uint32","nodeType":"ElementaryTypeName","src":"10515:6:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":86258,"mutability":"mutable","name":"timestamp","nameLocation":"10545:9:168","nodeType":"VariableDeclaration","scope":86259,"src":"10538:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86257,"name":"uint48","nodeType":"ElementaryTypeName","src":"10538:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10466:16:168","scope":87300,"visibility":"public"},{"id":86280,"nodeType":"StructDefinition","src":"10615:1092:168","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":86260,"nodeType":"StructuredDocumentation","src":"10567:43:168","text":" @dev Represents message."},"members":[{"constant":false,"id":86263,"mutability":"mutable","name":"id","nameLocation":"10740:2:168","nodeType":"VariableDeclaration","scope":86280,"src":"10732:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10732:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86266,"mutability":"mutable","name":"destination","nameLocation":"10936:11:168","nodeType":"VariableDeclaration","scope":86280,"src":"10928:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86265,"name":"address","nodeType":"ElementaryTypeName","src":"10928:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86269,"mutability":"mutable","name":"payload","nameLocation":"11031:7:168","nodeType":"VariableDeclaration","scope":86280,"src":"11025:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":86268,"name":"bytes","nodeType":"ElementaryTypeName","src":"11025:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86272,"mutability":"mutable","name":"value","nameLocation":"11135:5:168","nodeType":"VariableDeclaration","scope":86280,"src":"11127:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86271,"name":"uint128","nodeType":"ElementaryTypeName","src":"11127:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86276,"mutability":"mutable","name":"replyDetails","nameLocation":"11383:12:168","nodeType":"VariableDeclaration","scope":86280,"src":"11370:25:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":86275,"nodeType":"UserDefinedTypeName","pathNode":{"id":86274,"name":"ReplyDetails","nameLocations":["11370:12:168"],"nodeType":"IdentifierPath","referencedDeclaration":86319,"src":"11370:12:168"},"referencedDeclaration":86319,"src":"11370:12:168","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":86279,"mutability":"mutable","name":"call","nameLocation":"11696:4:168","nodeType":"VariableDeclaration","scope":86280,"src":"11691:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86278,"name":"bool","nodeType":"ElementaryTypeName","src":"11691:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10622:7:168","scope":87300,"visibility":"public"},{"id":86311,"nodeType":"StructDefinition","src":"11771:1505:168","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":86281,"nodeType":"StructuredDocumentation","src":"11713:53:168","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":86287,"mutability":"mutable","name":"codes","nameLocation":"12045:5:168","nodeType":"VariableDeclaration","scope":86311,"src":"12015:35:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":86286,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":86283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12023:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"12015:29:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":86285,"nodeType":"UserDefinedTypeName","pathNode":{"id":86284,"name":"CodeState","nameLocations":["12034:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":86239,"src":"12034:9:168"},"referencedDeclaration":86239,"src":"12034:9:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":86292,"mutability":"mutable","name":"programs","nameLocation":"12263:8:168","nodeType":"VariableDeclaration","scope":86311,"src":"12235:36:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":86291,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":86289,"name":"address","nodeType":"ElementaryTypeName","src":"12243:7:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"12235:27:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":86290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12254:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":86295,"mutability":"mutable","name":"programsCount","nameLocation":"12380:13:168","nodeType":"VariableDeclaration","scope":86311,"src":"12372:21:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86294,"name":"uint256","nodeType":"ElementaryTypeName","src":"12372:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86298,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12508:19:168","nodeType":"VariableDeclaration","scope":86311,"src":"12500:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86297,"name":"uint256","nodeType":"ElementaryTypeName","src":"12500:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86301,"mutability":"mutable","name":"maxValidators","nameLocation":"12626:13:168","nodeType":"VariableDeclaration","scope":86311,"src":"12619:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":86300,"name":"uint16","nodeType":"ElementaryTypeName","src":"12619:6:168","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":86304,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"12817:28:168","nodeType":"VariableDeclaration","scope":86311,"src":"12809:36:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86303,"name":"uint256","nodeType":"ElementaryTypeName","src":"12809:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86307,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"13033:29:168","nodeType":"VariableDeclaration","scope":86311,"src":"13025:37:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86306,"name":"uint256","nodeType":"ElementaryTypeName","src":"13025:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86310,"mutability":"mutable","name":"protocolVersion","nameLocation":"13254:15:168","nodeType":"VariableDeclaration","scope":86311,"src":"13246:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86309,"name":"uint256","nodeType":"ElementaryTypeName","src":"13246:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"11778:12:168","scope":87300,"visibility":"public"},{"id":86319,"nodeType":"StructDefinition","src":"13342:564:168","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":86312,"nodeType":"StructuredDocumentation","src":"13282:55:168","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":86315,"mutability":"mutable","name":"to","nameLocation":"13551:2:168","nodeType":"VariableDeclaration","scope":86319,"src":"13543:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13543:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86318,"mutability":"mutable","name":"code","nameLocation":"13895:4:168","nodeType":"VariableDeclaration","scope":86319,"src":"13888:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86317,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13888:6:168","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"13349:12:168","scope":87300,"visibility":"public"},{"id":86357,"nodeType":"StructDefinition","src":"14183:1782:168","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":86320,"nodeType":"StructuredDocumentation","src":"13912:266:168","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":86323,"mutability":"mutable","name":"actorId","nameLocation":"14410:7:168","nodeType":"VariableDeclaration","scope":86357,"src":"14402:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86322,"name":"address","nodeType":"ElementaryTypeName","src":"14402:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86326,"mutability":"mutable","name":"newStateHash","nameLocation":"14591:12:168","nodeType":"VariableDeclaration","scope":86357,"src":"14583:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14583:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86329,"mutability":"mutable","name":"exited","nameLocation":"14698:6:168","nodeType":"VariableDeclaration","scope":86357,"src":"14693:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86328,"name":"bool","nodeType":"ElementaryTypeName","src":"14693:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86332,"mutability":"mutable","name":"inheritor","nameLocation":"14900:9:168","nodeType":"VariableDeclaration","scope":86357,"src":"14892:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86331,"name":"address","nodeType":"ElementaryTypeName","src":"14892:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86335,"mutability":"mutable","name":"valueToReceive","nameLocation":"15278:14:168","nodeType":"VariableDeclaration","scope":86357,"src":"15270:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86334,"name":"uint128","nodeType":"ElementaryTypeName","src":"15270:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86338,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"15574:26:168","nodeType":"VariableDeclaration","scope":86357,"src":"15569:31:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86337,"name":"bool","nodeType":"ElementaryTypeName","src":"15569:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86343,"mutability":"mutable","name":"valueClaims","nameLocation":"15686:11:168","nodeType":"VariableDeclaration","scope":86357,"src":"15673:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86397_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":86341,"nodeType":"UserDefinedTypeName","pathNode":{"id":86340,"name":"ValueClaim","nameLocations":["15673:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":86397,"src":"15673:10:168"},"referencedDeclaration":86397,"src":"15673:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":86342,"nodeType":"ArrayTypeName","src":"15673:12:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86397_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"},{"constant":false,"id":86348,"mutability":"mutable","name":"messages","nameLocation":"15776:8:168","nodeType":"VariableDeclaration","scope":86357,"src":"15766:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86280_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":86346,"nodeType":"UserDefinedTypeName","pathNode":{"id":86345,"name":"Message","nameLocations":["15766:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":86280,"src":"15766:7:168"},"referencedDeclaration":86280,"src":"15766:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_storage_ptr","typeString":"struct Gear.Message"}},"id":86347,"nodeType":"ArrayTypeName","src":"15766:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86280_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"},{"constant":false,"id":86352,"mutability":"mutable","name":"events","nameLocation":"15859:6:168","nodeType":"VariableDeclaration","scope":86357,"src":"15851:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":86350,"name":"bytes","nodeType":"ElementaryTypeName","src":"15851:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":86351,"nodeType":"ArrayTypeName","src":"15851:7:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":86356,"mutability":"mutable","name":"ethEvents","nameLocation":"15949:9:168","nodeType":"VariableDeclaration","scope":86357,"src":"15941:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":86354,"name":"bytes","nodeType":"ElementaryTypeName","src":"15941:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":86355,"nodeType":"ArrayTypeName","src":"15941:7:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"14190:15:168","scope":87300,"visibility":"public"},{"id":86365,"nodeType":"StructDefinition","src":"16025:104:168","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":86358,"nodeType":"StructuredDocumentation","src":"15971:49:168","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":86360,"mutability":"mutable","name":"era","nameLocation":"16060:3:168","nodeType":"VariableDeclaration","scope":86365,"src":"16052:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86359,"name":"uint256","nodeType":"ElementaryTypeName","src":"16052:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86362,"mutability":"mutable","name":"election","nameLocation":"16081:8:168","nodeType":"VariableDeclaration","scope":86365,"src":"16073:16:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86361,"name":"uint256","nodeType":"ElementaryTypeName","src":"16073:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86364,"mutability":"mutable","name":"validationDelay","nameLocation":"16107:15:168","nodeType":"VariableDeclaration","scope":86365,"src":"16099:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86363,"name":"uint256","nodeType":"ElementaryTypeName","src":"16099:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"16032:9:168","scope":87300,"visibility":"public"},{"id":86377,"nodeType":"StructDefinition","src":"16199:171:168","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":86366,"nodeType":"StructuredDocumentation","src":"16135:59:168","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":86368,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16243:18:168","nodeType":"VariableDeclaration","scope":86377,"src":"16235:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86367,"name":"uint128","nodeType":"ElementaryTypeName","src":"16235:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86370,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16279:20:168","nodeType":"VariableDeclaration","scope":86377,"src":"16271:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86369,"name":"uint128","nodeType":"ElementaryTypeName","src":"16271:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86373,"mutability":"mutable","name":"validators0","nameLocation":"16320:11:168","nodeType":"VariableDeclaration","scope":86377,"src":"16309:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86372,"nodeType":"UserDefinedTypeName","pathNode":{"id":86371,"name":"Validators","nameLocations":["16309:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"16309:10:168"},"referencedDeclaration":86107,"src":"16309:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":86376,"mutability":"mutable","name":"validators1","nameLocation":"16352:11:168","nodeType":"VariableDeclaration","scope":86377,"src":"16341:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86375,"nodeType":"UserDefinedTypeName","pathNode":{"id":86374,"name":"Validators","nameLocations":["16341:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"16341:10:168"},"referencedDeclaration":86107,"src":"16341:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"16206:18:168","scope":87300,"visibility":"public"},{"id":86389,"nodeType":"StructDefinition","src":"16448:183:168","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":86378,"nodeType":"StructuredDocumentation","src":"16376:67:168","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":86380,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16496:18:168","nodeType":"VariableDeclaration","scope":86389,"src":"16488:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86379,"name":"uint128","nodeType":"ElementaryTypeName","src":"16488:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86382,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16532:20:168","nodeType":"VariableDeclaration","scope":86389,"src":"16524:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86381,"name":"uint128","nodeType":"ElementaryTypeName","src":"16524:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86385,"mutability":"mutable","name":"validators0","nameLocation":"16577:11:168","nodeType":"VariableDeclaration","scope":86389,"src":"16562:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":86384,"nodeType":"UserDefinedTypeName","pathNode":{"id":86383,"name":"ValidatorsView","nameLocations":["16562:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":86119,"src":"16562:14:168"},"referencedDeclaration":86119,"src":"16562:14:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":86388,"mutability":"mutable","name":"validators1","nameLocation":"16613:11:168","nodeType":"VariableDeclaration","scope":86389,"src":"16598:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":86387,"nodeType":"UserDefinedTypeName","pathNode":{"id":86386,"name":"ValidatorsView","nameLocations":["16598:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":86119,"src":"16598:14:168"},"referencedDeclaration":86119,"src":"16598:14:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"16455:22:168","scope":87300,"visibility":"public"},{"id":86397,"nodeType":"StructDefinition","src":"16693:104:168","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":86390,"nodeType":"StructuredDocumentation","src":"16637:51:168","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":86392,"mutability":"mutable","name":"messageId","nameLocation":"16729:9:168","nodeType":"VariableDeclaration","scope":86397,"src":"16721:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16721:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86394,"mutability":"mutable","name":"destination","nameLocation":"16756:11:168","nodeType":"VariableDeclaration","scope":86397,"src":"16748:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86393,"name":"address","nodeType":"ElementaryTypeName","src":"16748:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86396,"mutability":"mutable","name":"value","nameLocation":"16785:5:168","nodeType":"VariableDeclaration","scope":86397,"src":"16777:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86395,"name":"uint128","nodeType":"ElementaryTypeName","src":"16777:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"16700:10:168","scope":87300,"visibility":"public"},{"id":86419,"nodeType":"StructDefinition","src":"16877:436:168","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":86398,"nodeType":"StructuredDocumentation","src":"16803:69:168","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":86400,"mutability":"mutable","name":"vaultRegistry","nameLocation":"16953:13:168","nodeType":"VariableDeclaration","scope":86419,"src":"16945:21:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86399,"name":"address","nodeType":"ElementaryTypeName","src":"16945:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86402,"mutability":"mutable","name":"operatorRegistry","nameLocation":"16984:16:168","nodeType":"VariableDeclaration","scope":86419,"src":"16976:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86401,"name":"address","nodeType":"ElementaryTypeName","src":"16976:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86404,"mutability":"mutable","name":"networkRegistry","nameLocation":"17018:15:168","nodeType":"VariableDeclaration","scope":86419,"src":"17010:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86403,"name":"address","nodeType":"ElementaryTypeName","src":"17010:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86406,"mutability":"mutable","name":"middlewareService","nameLocation":"17051:17:168","nodeType":"VariableDeclaration","scope":86419,"src":"17043:25:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86405,"name":"address","nodeType":"ElementaryTypeName","src":"17043:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86408,"mutability":"mutable","name":"networkOptIn","nameLocation":"17086:12:168","nodeType":"VariableDeclaration","scope":86419,"src":"17078:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86407,"name":"address","nodeType":"ElementaryTypeName","src":"17078:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86410,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"17116:20:168","nodeType":"VariableDeclaration","scope":86419,"src":"17108:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86409,"name":"address","nodeType":"ElementaryTypeName","src":"17108:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86412,"mutability":"mutable","name":"operatorRewards","nameLocation":"17190:15:168","nodeType":"VariableDeclaration","scope":86419,"src":"17182:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86411,"name":"address","nodeType":"ElementaryTypeName","src":"17182:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86414,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"17223:18:168","nodeType":"VariableDeclaration","scope":86419,"src":"17215:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86413,"name":"address","nodeType":"ElementaryTypeName","src":"17215:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86416,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"17259:17:168","nodeType":"VariableDeclaration","scope":86419,"src":"17251:25:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86415,"name":"address","nodeType":"ElementaryTypeName","src":"17251:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86418,"mutability":"mutable","name":"vetoResolver","nameLocation":"17294:12:168","nodeType":"VariableDeclaration","scope":86419,"src":"17286:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86417,"name":"address","nodeType":"ElementaryTypeName","src":"17286:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16884:18:168","scope":87300,"visibility":"public"},{"id":86423,"nodeType":"EnumDefinition","src":"17386:55:168","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":86420,"nodeType":"StructuredDocumentation","src":"17319:62:168","text":" @dev Represents the type of signature used."},"members":[{"id":86421,"name":"FROST","nameLocation":"17415:5:168","nodeType":"EnumValue","src":"17415:5:168"},{"id":86422,"name":"ECDSA","nameLocation":"17430:5:168","nodeType":"EnumValue","src":"17430:5:168"}],"name":"SignatureType","nameLocation":"17391:13:168"},{"id":86428,"nodeType":"EnumDefinition","src":"17519:68:168","nodes":[],"canonicalName":"Gear.VersionType","documentation":{"id":86424,"nodeType":"StructuredDocumentation","src":"17447:67:168","text":" @dev Represents the type of version in `Router`."},"members":[{"id":86425,"name":"Major","nameLocation":"17546:5:168","nodeType":"EnumValue","src":"17546:5:168"},{"id":86426,"name":"Minor","nameLocation":"17561:5:168","nodeType":"EnumValue","src":"17561:5:168"},{"id":86427,"name":"Patch","nameLocation":"17576:5:168","nodeType":"EnumValue","src":"17576:5:168"}],"name":"VersionType","nameLocation":"17524:11:168"},{"id":86450,"nodeType":"FunctionDefinition","src":"17877:260:168","nodes":[],"body":{"id":86449,"nodeType":"Block","src":"18038:99:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86443,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86431,"src":"18082:16:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86444,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86433,"src":"18100:5:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86445,"name":"_lastAdvancedEthBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86435,"src":"18107:21:168","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":86441,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18065:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18069:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"18065:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18065:64:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86440,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18055:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18055:75:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86439,"id":86448,"nodeType":"Return","src":"18048:82:168"}]},"documentation":{"id":86429,"nodeType":"StructuredDocumentation","src":"17593:279:168","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":"17886:19:168","parameters":{"id":86436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86431,"mutability":"mutable","name":"_transitionsHash","nameLocation":"17914:16:168","nodeType":"VariableDeclaration","scope":86450,"src":"17906:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17906:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86433,"mutability":"mutable","name":"_head","nameLocation":"17940:5:168","nodeType":"VariableDeclaration","scope":86450,"src":"17932:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17932:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86435,"mutability":"mutable","name":"_lastAdvancedEthBlock","nameLocation":"17955:21:168","nodeType":"VariableDeclaration","scope":86450,"src":"17947:29:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17947:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17905:72:168"},"returnParameters":{"id":86439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86450,"src":"18025:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18025:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18024:9:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86467,"nodeType":"FunctionDefinition","src":"18306:336:168","nodes":[],"body":{"id":86466,"nodeType":"Block","src":"18394:248:168","nodes":[],"statements":[{"assignments":[86461],"declarations":[{"constant":false,"id":86461,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"18412:19:168","nodeType":"VariableDeclaration","scope":86466,"src":"18404:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18404:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86462,"nodeType":"VariableDeclarationStatement","src":"18404:27:168"},{"AST":{"nativeSrc":"18466:134:168","nodeType":"YulBlock","src":"18466:134:168","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18487:4:168","nodeType":"YulLiteral","src":"18487:4:168","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"18493:6:168","nodeType":"YulIdentifier","src":"18493:6:168"}],"functionName":{"name":"mstore","nativeSrc":"18480:6:168","nodeType":"YulIdentifier","src":"18480:6:168"},"nativeSrc":"18480:20:168","nodeType":"YulFunctionCall","src":"18480:20:168"},"nativeSrc":"18480:20:168","nodeType":"YulExpressionStatement","src":"18480:20:168"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18521:4:168","nodeType":"YulLiteral","src":"18521:4:168","type":"","value":"0x20"},{"name":"valid","nativeSrc":"18527:5:168","nodeType":"YulIdentifier","src":"18527:5:168"}],"functionName":{"name":"mstore8","nativeSrc":"18513:7:168","nodeType":"YulIdentifier","src":"18513:7:168"},"nativeSrc":"18513:20:168","nodeType":"YulFunctionCall","src":"18513:20:168"},"nativeSrc":"18513:20:168","nodeType":"YulExpressionStatement","src":"18513:20:168"},{"nativeSrc":"18546:44:168","nodeType":"YulAssignment","src":"18546:44:168","value":{"arguments":[{"kind":"number","nativeSrc":"18579:4:168","nodeType":"YulLiteral","src":"18579:4:168","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18585:4:168","nodeType":"YulLiteral","src":"18585:4:168","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"18569:9:168","nodeType":"YulIdentifier","src":"18569:9:168"},"nativeSrc":"18569:21:168","nodeType":"YulFunctionCall","src":"18569:21:168"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"18546:19:168","nodeType":"YulIdentifier","src":"18546:19:168"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":86461,"isOffset":false,"isSlot":false,"src":"18546:19:168","valueSize":1},{"declaration":86453,"isOffset":false,"isSlot":false,"src":"18493:6:168","valueSize":1},{"declaration":86455,"isOffset":false,"isSlot":false,"src":"18527:5:168","valueSize":1}],"flags":["memory-safe"],"id":86463,"nodeType":"InlineAssembly","src":"18441:159:168"},{"expression":{"id":86464,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86461,"src":"18616:19:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86459,"id":86465,"nodeType":"Return","src":"18609:26:168"}]},"documentation":{"id":86451,"nodeType":"StructuredDocumentation","src":"18143:158:168","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":"18315:18:168","parameters":{"id":86456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86453,"mutability":"mutable","name":"codeId","nameLocation":"18342:6:168","nodeType":"VariableDeclaration","scope":86467,"src":"18334:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18334:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86455,"mutability":"mutable","name":"valid","nameLocation":"18355:5:168","nodeType":"VariableDeclaration","scope":86467,"src":"18350:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86454,"name":"bool","nodeType":"ElementaryTypeName","src":"18350:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18333:28:168"},"returnParameters":{"id":86459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86467,"src":"18385:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86457,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18385:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18384:9:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86489,"nodeType":"FunctionDefinition","src":"18919:273:168","nodes":[],"body":{"id":86488,"nodeType":"Block","src":"19087:105:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86482,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86470,"src":"19131:20:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86483,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86472,"src":"19153:18:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86484,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86474,"src":"19173:10:168","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":86480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19114:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19118:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"19114:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19114:70:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86479,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19104:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19104:81:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86478,"id":86487,"nodeType":"Return","src":"19097:88:168"}]},"documentation":{"id":86468,"nodeType":"StructuredDocumentation","src":"18648:266:168","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":"18928:21:168","parameters":{"id":86475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86470,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"18958:20:168","nodeType":"VariableDeclaration","scope":86489,"src":"18950:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18950:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86472,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"18988:18:168","nodeType":"VariableDeclaration","scope":86489,"src":"18980:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18980:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86474,"mutability":"mutable","name":"_timestamp","nameLocation":"19015:10:168","nodeType":"VariableDeclaration","scope":86489,"src":"19008:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86473,"name":"uint48","nodeType":"ElementaryTypeName","src":"19008:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"18949:77:168"},"returnParameters":{"id":86478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86489,"src":"19074:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86476,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19074:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19073:9:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86517,"nodeType":"FunctionDefinition","src":"19323:425:168","nodes":[],"body":{"id":86516,"nodeType":"Block","src":"19434:314:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":86501,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86493,"src":"19508:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19519:22:168","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86154,"src":"19508:33:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":86503,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86493,"src":"19559:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19570:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86157,"src":"19559:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":86505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19590:1:168","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":86083,"src":"19559:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":86506,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86493,"src":"19609:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19620:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86157,"src":"19609:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":86508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19640:1:168","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"19609:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":86509,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86493,"src":"19659:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19670:10:168","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":86162,"src":"19659:21:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":86511,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86493,"src":"19698:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":86512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19709:8:168","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":86164,"src":"19698:19:168","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":86499,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19474:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19478:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"19474:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19474:257:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86498,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19451:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19451:290:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86497,"id":86515,"nodeType":"Return","src":"19444:297:168"}]},"documentation":{"id":86490,"nodeType":"StructuredDocumentation","src":"19198:120:168","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"19332:24:168","parameters":{"id":86494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86493,"mutability":"mutable","name":"commitment","nameLocation":"19390:10:168","nodeType":"VariableDeclaration","scope":86517,"src":"19357:43:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":86492,"nodeType":"UserDefinedTypeName","pathNode":{"id":86491,"name":"Gear.ValidatorsCommitment","nameLocations":["19357:4:168","19362:20:168"],"nodeType":"IdentifierPath","referencedDeclaration":86165,"src":"19357:25:168"},"referencedDeclaration":86165,"src":"19357:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"19356:45:168"},"returnParameters":{"id":86497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86517,"src":"19425:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19425:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19424:9:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86554,"nodeType":"FunctionDefinition","src":"20361:697:168","nodes":[],"body":{"id":86553,"nodeType":"Block","src":"20698:360:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86542,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86520,"src":"20772:6:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86543,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86522,"src":"20796:10:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":86544,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86524,"src":"20824:19:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86545,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86526,"src":"20861:7:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":86546,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86528,"src":"20886:20:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86547,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86530,"src":"20924:20:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86548,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86532,"src":"20962:22:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86549,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86534,"src":"21002:25:168","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":86540,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20738:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20742:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"20738:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20738:303:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86539,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20715:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20715:336:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86538,"id":86552,"nodeType":"Return","src":"20708:343:168"}]},"documentation":{"id":86518,"nodeType":"StructuredDocumentation","src":"19754:602:168","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":"20370:19:168","parameters":{"id":86535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86520,"mutability":"mutable","name":"_block","nameLocation":"20407:6:168","nodeType":"VariableDeclaration","scope":86554,"src":"20399:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20399:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86522,"mutability":"mutable","name":"_timestamp","nameLocation":"20430:10:168","nodeType":"VariableDeclaration","scope":86554,"src":"20423:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86521,"name":"uint48","nodeType":"ElementaryTypeName","src":"20423:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":86524,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"20458:19:168","nodeType":"VariableDeclaration","scope":86554,"src":"20450:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20450:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86526,"mutability":"mutable","name":"_expiry","nameLocation":"20493:7:168","nodeType":"VariableDeclaration","scope":86554,"src":"20487:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":86525,"name":"uint8","nodeType":"ElementaryTypeName","src":"20487:5:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":86528,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"20518:20:168","nodeType":"VariableDeclaration","scope":86554,"src":"20510:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20510:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86530,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"20556:20:168","nodeType":"VariableDeclaration","scope":86554,"src":"20548:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20548:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86532,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"20594:22:168","nodeType":"VariableDeclaration","scope":86554,"src":"20586:30:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20586:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86534,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"20634:25:168","nodeType":"VariableDeclaration","scope":86554,"src":"20626:33:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20626:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20389:276:168"},"returnParameters":{"id":86538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86554,"src":"20689:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20689:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20688:9:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86586,"nodeType":"FunctionDefinition","src":"21189:407:168","nodes":[],"body":{"id":86585,"nodeType":"Block","src":"21266:330:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":86566,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86558,"src":"21340:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21348:2:168","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86263,"src":"21340:10:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":86568,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86558,"src":"21368:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21376:11:168","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"21368:19:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":86570,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86558,"src":"21405:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21413:7:168","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86269,"src":"21405:15:168","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":86572,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86558,"src":"21438:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21446:5:168","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"21438:13:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":86574,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86558,"src":"21469:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21477:12:168","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86276,"src":"21469:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":86576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21490:2:168","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":86315,"src":"21469:23:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":86577,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86558,"src":"21510:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21518:12:168","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86276,"src":"21510:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":86579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21531:4:168","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86318,"src":"21510:25:168","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":86580,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86558,"src":"21553:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21561:4:168","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":86279,"src":"21553:12:168","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":86564,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21306:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21310:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"21306:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21306:273:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86563,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21283:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21283:306:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86562,"id":86584,"nodeType":"Return","src":"21276:313:168"}]},"documentation":{"id":86555,"nodeType":"StructuredDocumentation","src":"21064:120:168","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":"21198:11:168","parameters":{"id":86559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86558,"mutability":"mutable","name":"message","nameLocation":"21225:7:168","nodeType":"VariableDeclaration","scope":86586,"src":"21210:22:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":86557,"nodeType":"UserDefinedTypeName","pathNode":{"id":86556,"name":"Message","nameLocations":["21210:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":86280,"src":"21210:7:168"},"referencedDeclaration":86280,"src":"21210:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"21209:24:168"},"returnParameters":{"id":86562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86586,"src":"21257:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21257:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21256:9:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86608,"nodeType":"FunctionDefinition","src":"21803:199:168","nodes":[],"body":{"id":86607,"nodeType":"Block","src":"21917:85:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86601,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86589,"src":"21961:10:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86602,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86591,"src":"21973:12:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86603,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86593,"src":"21987:6:168","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":86599,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21944:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21948:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"21944:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21944:50:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86598,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21934:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21934:61:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86597,"id":86606,"nodeType":"Return","src":"21927:68:168"}]},"documentation":{"id":86587,"nodeType":"StructuredDocumentation","src":"21602:196:168","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":"21812:14:168","parameters":{"id":86594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86589,"mutability":"mutable","name":"_messageId","nameLocation":"21835:10:168","nodeType":"VariableDeclaration","scope":86608,"src":"21827:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21827:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86591,"mutability":"mutable","name":"_destination","nameLocation":"21855:12:168","nodeType":"VariableDeclaration","scope":86608,"src":"21847:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86590,"name":"address","nodeType":"ElementaryTypeName","src":"21847:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86593,"mutability":"mutable","name":"_value","nameLocation":"21877:6:168","nodeType":"VariableDeclaration","scope":86608,"src":"21869:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86592,"name":"uint128","nodeType":"ElementaryTypeName","src":"21869:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21826:58:168"},"returnParameters":{"id":86597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86608,"src":"21908:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21908:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21907:9:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86651,"nodeType":"FunctionDefinition","src":"22642:788:168","nodes":[],"body":{"id":86650,"nodeType":"Block","src":"23023:407:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86637,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86611,"src":"23097:5:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86638,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86613,"src":"23120:12:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86639,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86615,"src":"23150:6:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":86640,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86617,"src":"23174:9:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86641,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86619,"src":"23201:14:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":86642,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86621,"src":"23233:26:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":86643,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86623,"src":"23277:15:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86644,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86625,"src":"23310:18:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86645,"name":"eventsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86627,"src":"23346:16:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86646,"name":"ethEventsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86629,"src":"23380:19:168","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":86635,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23063:3:168","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23067:12:168","memberName":"encodePacked","nodeType":"MemberAccess","src":"23063:16:168","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23063:350:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86634,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"23040:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23040:383:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86633,"id":86649,"nodeType":"Return","src":"23033:390:168"}]},"documentation":{"id":86609,"nodeType":"StructuredDocumentation","src":"22008:629:168","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":"22651:19:168","parameters":{"id":86630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86611,"mutability":"mutable","name":"actor","nameLocation":"22688:5:168","nodeType":"VariableDeclaration","scope":86651,"src":"22680:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86610,"name":"address","nodeType":"ElementaryTypeName","src":"22680:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86613,"mutability":"mutable","name":"newStateHash","nameLocation":"22711:12:168","nodeType":"VariableDeclaration","scope":86651,"src":"22703:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22703:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86615,"mutability":"mutable","name":"exited","nameLocation":"22738:6:168","nodeType":"VariableDeclaration","scope":86651,"src":"22733:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86614,"name":"bool","nodeType":"ElementaryTypeName","src":"22733:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86617,"mutability":"mutable","name":"inheritor","nameLocation":"22762:9:168","nodeType":"VariableDeclaration","scope":86651,"src":"22754:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86616,"name":"address","nodeType":"ElementaryTypeName","src":"22754:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86619,"mutability":"mutable","name":"valueToReceive","nameLocation":"22789:14:168","nodeType":"VariableDeclaration","scope":86651,"src":"22781:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86618,"name":"uint128","nodeType":"ElementaryTypeName","src":"22781:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86621,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"22818:26:168","nodeType":"VariableDeclaration","scope":86651,"src":"22813:31:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86620,"name":"bool","nodeType":"ElementaryTypeName","src":"22813:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86623,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"22862:15:168","nodeType":"VariableDeclaration","scope":86651,"src":"22854:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22854:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86625,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"22895:18:168","nodeType":"VariableDeclaration","scope":86651,"src":"22887:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22887:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86627,"mutability":"mutable","name":"eventsHashesHash","nameLocation":"22931:16:168","nodeType":"VariableDeclaration","scope":86651,"src":"22923:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22923:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86629,"mutability":"mutable","name":"ethEventsHashesHash","nameLocation":"22965:19:168","nodeType":"VariableDeclaration","scope":86651,"src":"22957:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22957:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22670:320:168"},"returnParameters":{"id":86633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86651,"src":"23014:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23014:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23013:9:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86716,"nodeType":"FunctionDefinition","src":"23704:532:168","nodes":[],"body":{"id":86715,"nodeType":"Block","src":"23803:433:168","nodes":[],"statements":[{"assignments":[86662],"declarations":[{"constant":false,"id":86662,"mutability":"mutable","name":"start","nameLocation":"23821:5:168","nodeType":"VariableDeclaration","scope":86715,"src":"23813:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86661,"name":"uint256","nodeType":"ElementaryTypeName","src":"23813:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86667,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86663,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23829:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23835:6:168","memberName":"number","nodeType":"MemberAccess","src":"23829:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":86665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23844:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23829:16:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23813:32:168"},{"assignments":[86669],"declarations":[{"constant":false,"id":86669,"mutability":"mutable","name":"end","nameLocation":"23863:3:168","nodeType":"VariableDeclaration","scope":86715,"src":"23855:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86668,"name":"uint256","nodeType":"ElementaryTypeName","src":"23855:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86680,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86670,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86656,"src":"23869:6:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":86671,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23879:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23885:6:168","memberName":"number","nodeType":"MemberAccess","src":"23879:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23869:22:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86675,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23898:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23904:6:168","memberName":"number","nodeType":"MemberAccess","src":"23898:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":86677,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86656,"src":"23913:6:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"23898:21:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23869:50:168","trueExpression":{"hexValue":"30","id":86674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23894:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23855:64:168"},{"body":{"id":86711,"nodeType":"Block","src":"23964:243:168","statements":[{"assignments":[86689],"declarations":[{"constant":false,"id":86689,"mutability":"mutable","name":"ret","nameLocation":"23986:3:168","nodeType":"VariableDeclaration","scope":86711,"src":"23978:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23978:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86693,"initialValue":{"arguments":[{"id":86691,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86682,"src":"24002:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86690,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"23992:9:168","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":86692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23992:12:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23978:26:168"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86694,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86689,"src":"24022:3:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86695,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86654,"src":"24029:4:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24022:11:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86700,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86689,"src":"24089:3:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":86701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24096:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24089:8:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86705,"nodeType":"IfStatement","src":"24085:52:168","trueBody":{"id":86704,"nodeType":"Block","src":"24099:38:168","statements":[{"id":86703,"nodeType":"Break","src":"24117:5:168"}]}},"id":86706,"nodeType":"IfStatement","src":"24018:119:168","trueBody":{"id":86699,"nodeType":"Block","src":"24035:44:168","statements":[{"expression":{"hexValue":"74727565","id":86697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24060:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":86660,"id":86698,"nodeType":"Return","src":"24053:11:168"}]}},{"id":86710,"nodeType":"UncheckedBlock","src":"24151:46:168","statements":[{"expression":{"id":86708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"24179:3:168","subExpression":{"id":86707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86682,"src":"24179:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86709,"nodeType":"ExpressionStatement","src":"24179:3:168"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86682,"src":"23953:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":86686,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86669,"src":"23958:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23953:8:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86712,"initializationExpression":{"assignments":[86682],"declarations":[{"constant":false,"id":86682,"mutability":"mutable","name":"i","nameLocation":"23942:1:168","nodeType":"VariableDeclaration","scope":86712,"src":"23934:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86681,"name":"uint256","nodeType":"ElementaryTypeName","src":"23934:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86684,"initialValue":{"id":86683,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86662,"src":"23946:5:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23934:17:168"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"23929:278:168"},{"expression":{"hexValue":"66616c7365","id":86713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24224:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":86660,"id":86714,"nodeType":"Return","src":"24217:12:168"}]},"documentation":{"id":86652,"nodeType":"StructuredDocumentation","src":"23436:263:168","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":"23713:18:168","parameters":{"id":86657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86654,"mutability":"mutable","name":"hash","nameLocation":"23740:4:168","nodeType":"VariableDeclaration","scope":86716,"src":"23732:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23732:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86656,"mutability":"mutable","name":"expiry","nameLocation":"23752:6:168","nodeType":"VariableDeclaration","scope":86716,"src":"23746:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":86655,"name":"uint8","nodeType":"ElementaryTypeName","src":"23746:5:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"23731:28:168"},"returnParameters":{"id":86660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86659,"mutability":"mutable","name":"isPredecessor","nameLocation":"23788:13:168","nodeType":"VariableDeclaration","scope":86716,"src":"23783:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86658,"name":"bool","nodeType":"ElementaryTypeName","src":"23783:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23782:20:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86729,"nodeType":"FunctionDefinition","src":"24381:222:168","nodes":[],"body":{"id":86728,"nodeType":"Block","src":"24490:113:168","nodes":[],"statements":[{"expression":{"arguments":[{"id":86724,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86047,"src":"24539:21:168","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":86725,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86059,"src":"24578:16:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86723,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86251,"src":"24507:19:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$86251_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":86726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24528:9:168","24562:14:168"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"24507:89:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":86722,"id":86727,"nodeType":"Return","src":"24500:96:168"}]},"documentation":{"id":86717,"nodeType":"StructuredDocumentation","src":"24242:134:168","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"24390:26:168","parameters":{"id":86718,"nodeType":"ParameterList","parameters":[],"src":"24416:2:168"},"returnParameters":{"id":86722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86721,"mutability":"mutable","name":"computationSettings","nameLocation":"24469:19:168","nodeType":"VariableDeclaration","scope":86729,"src":"24442:46:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":86720,"nodeType":"UserDefinedTypeName","pathNode":{"id":86719,"name":"ComputationSettings","nameLocations":["24442:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":86251,"src":"24442:19:168"},"referencedDeclaration":86251,"src":"24442:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"24441:48:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86752,"nodeType":"FunctionDefinition","src":"24729:229:168","nodes":[],"body":{"id":86751,"nodeType":"Block","src":"24816:142:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":86739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24877:1:168","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":86738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24869:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":86737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24869:7:168","typeDescriptions":{}}},"id":86740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24869:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":86743,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24907:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24913:6:168","memberName":"number","nodeType":"MemberAccess","src":"24907:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":86741,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"24889:8:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$13734_$","typeString":"type(library SafeCast)"}},"id":86742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24898:8:168","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":12780,"src":"24889:17:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":86745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:31:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86746,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"24933:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":86747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24938:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"24933:14:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":86748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24933:16:168","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":86736,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86259,"src":"24845:16:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$86259_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":86749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24863:4:168","24881:6:168","24922:9:168"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"24845:106:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":86735,"id":86750,"nodeType":"Return","src":"24826:125:168"}]},"documentation":{"id":86730,"nodeType":"StructuredDocumentation","src":"24609:115:168","text":" @dev Creates new genesis block info.\n @return genesisBlockInfo The new genesis block info."},"implemented":true,"kind":"function","modifiers":[],"name":"newGenesis","nameLocation":"24738:10:168","parameters":{"id":86731,"nodeType":"ParameterList","parameters":[],"src":"24748:2:168"},"returnParameters":{"id":86735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86734,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"24798:16:168","nodeType":"VariableDeclaration","scope":86752,"src":"24774:40:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":86733,"nodeType":"UserDefinedTypeName","pathNode":{"id":86732,"name":"GenesisBlockInfo","nameLocations":["24774:16:168"],"nodeType":"IdentifierPath","referencedDeclaration":86259,"src":"24774:16:168"},"referencedDeclaration":86259,"src":"24774:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"24773:42:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87002,"nodeType":"FunctionDefinition","src":"25449:3813:168","nodes":[],"body":{"id":87001,"nodeType":"Block","src":"25712:3550:168","nodes":[],"statements":[{"assignments":[86774],"declarations":[{"constant":false,"id":86774,"mutability":"mutable","name":"eraStarted","nameLocation":"25784:10:168","nodeType":"VariableDeclaration","scope":87001,"src":"25776:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86773,"name":"uint256","nodeType":"ElementaryTypeName","src":"25776:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86780,"initialValue":{"arguments":[{"id":86776,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86756,"src":"25810:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":86777,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25818:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25824:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"25818:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86775,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87235,"src":"25797:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":86779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25797:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25776:58:168"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86781,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86768,"src":"25848:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86782,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86774,"src":"25853:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25848:15:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86784,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25867:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25873:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"25867:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86786,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86774,"src":"25885:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":86787,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86756,"src":"25898:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25905:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"25898:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"id":86789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25915:15:168","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":86364,"src":"25898:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25885:45:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25867:63:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25848:82:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86834,"nodeType":"Block","src":"26291:229:168","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86817,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86768,"src":"26313:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":86818,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26319:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26325:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"26319:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26313:21:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86821,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86068,"src":"26336:17:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26336:19:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86816,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26305:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26305:51:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86824,"nodeType":"ExpressionStatement","src":"26305:51:168"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86825,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86768,"src":"26375:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86826,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86774,"src":"26380:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26375:15:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86833,"nodeType":"IfStatement","src":"26371:69:168","trueBody":{"id":86832,"nodeType":"Block","src":"26392:48:168","statements":[{"expression":{"id":86830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86828,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86768,"src":"26410:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86829,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86774,"src":"26415:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26410:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86831,"nodeType":"ExpressionStatement","src":"26410:15:168"}]}}]},"id":86835,"nodeType":"IfStatement","src":"25844:676:168","trueBody":{"id":86815,"nodeType":"Block","src":"25932:353:168","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86794,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86768,"src":"25954:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":86795,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86756,"src":"25960:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25967:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"25960:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":86797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25980:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86258,"src":"25960:29:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"25954:35:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86799,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86062,"src":"25991:23:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25991:25:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86793,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25946:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25946:71:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86802,"nodeType":"ExpressionStatement","src":"25946:71:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86804,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86768,"src":"26039:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":86805,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86756,"src":"26044:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26051:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"26044:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"id":86807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26061:3:168","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86360,"src":"26044:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26039:25:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":86809,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86774,"src":"26068:10:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26039:39:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86811,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86065,"src":"26080:29:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26080:31:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86803,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26031:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26031:81:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86814,"nodeType":"ExpressionStatement","src":"26031:81:168"}]}},{"assignments":[86838],"declarations":[{"constant":false,"id":86838,"mutability":"mutable","name":"validators","nameLocation":"26601:10:168","nodeType":"VariableDeclaration","scope":87001,"src":"26582:29:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86837,"nodeType":"UserDefinedTypeName","pathNode":{"id":86836,"name":"Validators","nameLocations":["26582:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"26582:10:168"},"referencedDeclaration":86107,"src":"26582:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":86843,"initialValue":{"arguments":[{"id":86840,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86756,"src":"26627:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":86841,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86768,"src":"26635:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86839,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87074,"src":"26614:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":86842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26614:24:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"26582:56:168"},{"assignments":[86845],"declarations":[{"constant":false,"id":86845,"mutability":"mutable","name":"_messageHash","nameLocation":"26656:12:168","nodeType":"VariableDeclaration","scope":87001,"src":"26648:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26648:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86853,"initialValue":{"arguments":[{"id":86851,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86760,"src":"26717:9:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":86848,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"26679:4:168","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$87300","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$87300","typeString":"library Gear"}],"id":86847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26671:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86846,"name":"address","nodeType":"ElementaryTypeName","src":"26671:7:168","typeDescriptions":{}}},"id":86849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26671:13:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26685:31:168","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":10204,"src":"26671:45:168","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":86852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26671:56:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26648:79:168"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"},"id":86857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86854,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86763,"src":"26742:14:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":86855,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86423,"src":"26760:13:168","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$86423_$","typeString":"type(enum Gear.SignatureType)"}},"id":86856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26774:5:168","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":86421,"src":"26760:19:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"}},"src":"26742:37:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"},"id":86910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86907,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86763,"src":"27938:14:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":86908,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86423,"src":"27956:13:168","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$86423_$","typeString":"type(enum Gear.SignatureType)"}},"id":86909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27970:5:168","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":86422,"src":"27956:19:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"}},"src":"27938:37:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86997,"nodeType":"IfStatement","src":"27934:1299:168","trueBody":{"id":86996,"nodeType":"Block","src":"27977:1256:168","statements":[{"assignments":[86912],"declarations":[{"constant":false,"id":86912,"mutability":"mutable","name":"threshold","nameLocation":"27999:9:168","nodeType":"VariableDeclaration","scope":86996,"src":"27991:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86911,"name":"uint256","nodeType":"ElementaryTypeName","src":"27991:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86924,"initialValue":{"arguments":[{"expression":{"expression":{"id":86914,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"28048:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28059:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":86103,"src":"28048:15:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":86916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28064:6:168","memberName":"length","nodeType":"MemberAccess","src":"28048:22:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":86917,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86756,"src":"28088:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28095:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"28088:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28114:18:168","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86368,"src":"28088:44:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":86920,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86756,"src":"28150:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28157:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"28150:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28176:20:168","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86370,"src":"28150:46:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86913,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87187,"src":"28011:19:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":86923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28011:199:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27991:219:168"},{"assignments":[86926],"declarations":[{"constant":false,"id":86926,"mutability":"mutable","name":"validSignatures","nameLocation":"28233:15:168","nodeType":"VariableDeclaration","scope":86996,"src":"28225:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86925,"name":"uint256","nodeType":"ElementaryTypeName","src":"28225:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86928,"initialValue":{"hexValue":"30","id":86927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28251:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28225:27:168"},{"body":{"id":86992,"nodeType":"Block","src":"28316:880:168","statements":[{"assignments":[86941],"declarations":[{"constant":false,"id":86941,"mutability":"mutable","name":"signature","nameLocation":"28349:9:168","nodeType":"VariableDeclaration","scope":86992,"src":"28334:24:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86940,"name":"bytes","nodeType":"ElementaryTypeName","src":"28334:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":86945,"initialValue":{"baseExpression":{"id":86942,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86766,"src":"28361:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86944,"indexExpression":{"id":86943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86930,"src":"28373:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28361:14:168","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"28334:41:168"},{"assignments":[86947],"declarations":[{"constant":false,"id":86947,"mutability":"mutable","name":"validator","nameLocation":"28402:9:168","nodeType":"VariableDeclaration","scope":86992,"src":"28394:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86946,"name":"address","nodeType":"ElementaryTypeName","src":"28394:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":86952,"initialValue":{"arguments":[{"id":86950,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86941,"src":"28435:9:168","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":86948,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86845,"src":"28414:12:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28427:7:168","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"28414:20:168","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":86951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28414:31:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"28394:51:168"},{"condition":{"baseExpression":{"expression":{"id":86953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"28468:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28479:3:168","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":86099,"src":"28468:14:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":86956,"indexExpression":{"id":86955,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86947,"src":"28483:9:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28468:25:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86991,"nodeType":"IfStatement","src":"28464:718:168","trueBody":{"id":86990,"nodeType":"Block","src":"28495:687:168","statements":[{"assignments":[86959],"declarations":[{"constant":false,"id":86959,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"28720:30:168","nodeType":"VariableDeclaration","scope":86990,"src":"28712:38:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86958,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28712:7:168","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":86964,"initialValue":{"arguments":[{"id":86962,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86947,"src":"28790:9:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":86960,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86758,"src":"28753:22:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28776:13:168","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":6651,"src":"28753:36:168","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":86963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28753:47:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28712:88:168"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86965,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86959,"src":"28827:30:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28858:9:168","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":8395,"src":"28827:40:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$8380_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":86967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28827:42:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$8380","typeString":"TransientSlot.BooleanSlot"}},"id":86968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:5:168","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":8479,"src":"28827:48:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_BooleanSlot_$8380_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BooleanSlot_$8380_$","typeString":"function (TransientSlot.BooleanSlot) view returns (bool)"}},"id":86969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28827:50:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86980,"nodeType":"Block","src":"28942:104:168","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":86977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29018:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86972,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86959,"src":"28968:30:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28999:9:168","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":8395,"src":"28968:40:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$8380_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":86975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28968:42:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$8380","typeString":"TransientSlot.BooleanSlot"}},"id":86976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29011:6:168","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":8490,"src":"28968:49:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$8380_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$8380_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":86978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28968:55:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86979,"nodeType":"ExpressionStatement","src":"28968:55:168"}]},"id":86981,"nodeType":"IfStatement","src":"28823:223:168","trueBody":{"id":86971,"nodeType":"Block","src":"28879:57:168","statements":[{"id":86970,"nodeType":"Continue","src":"28905:8:168"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"29072:17:168","subExpression":{"id":86982,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86926,"src":"29074:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86984,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86912,"src":"29093:9:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29072:30:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86989,"nodeType":"IfStatement","src":"29068:96:168","trueBody":{"id":86988,"nodeType":"Block","src":"29104:60:168","statements":[{"expression":{"hexValue":"74727565","id":86986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29137:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":86772,"id":86987,"nodeType":"Return","src":"29130:11:168"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86933,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86930,"src":"28287:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":86934,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86766,"src":"28291:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28303:6:168","memberName":"length","nodeType":"MemberAccess","src":"28291:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28287:22:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86993,"initializationExpression":{"assignments":[86930],"declarations":[{"constant":false,"id":86930,"mutability":"mutable","name":"i","nameLocation":"28280:1:168","nodeType":"VariableDeclaration","scope":86993,"src":"28272:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86929,"name":"uint256","nodeType":"ElementaryTypeName","src":"28272:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86932,"initialValue":{"hexValue":"30","id":86931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28284:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28272:13:168"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":86938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28311:3:168","subExpression":{"id":86937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86930,"src":"28311:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86939,"nodeType":"ExpressionStatement","src":"28311:3:168"},"nodeType":"ForStatement","src":"28267:929:168"},{"expression":{"hexValue":"66616c7365","id":86994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29217:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":86772,"id":86995,"nodeType":"Return","src":"29210:12:168"}]}},"id":86998,"nodeType":"IfStatement","src":"26738:2495:168","trueBody":{"id":86906,"nodeType":"Block","src":"26781:1147:168","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86859,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86766,"src":"26803:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26815:6:168","memberName":"length","nodeType":"MemberAccess","src":"26803:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":86861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26825:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26803:23:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86863,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86071,"src":"26828:26:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26828:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86858,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26795:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26795:62:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86866,"nodeType":"ExpressionStatement","src":"26795:62:168"},{"assignments":[86868],"declarations":[{"constant":false,"id":86868,"mutability":"mutable","name":"_signature","nameLocation":"26885:10:168","nodeType":"VariableDeclaration","scope":86906,"src":"26872:23:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86867,"name":"bytes","nodeType":"ElementaryTypeName","src":"26872:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":86872,"initialValue":{"baseExpression":{"id":86869,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86766,"src":"26898:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86871,"indexExpression":{"hexValue":"30","id":86870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26910:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26898:14:168","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"26872:40:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86874,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86868,"src":"26934:10:168","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":86875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26945:6:168","memberName":"length","nodeType":"MemberAccess","src":"26934:17:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":86876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26955:2:168","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"26934:23:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86878,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86074,"src":"26959:27:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26959:29:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86873,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26926:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26926:63:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86881,"nodeType":"ExpressionStatement","src":"26926:63:168"},{"assignments":[86883],"declarations":[{"constant":false,"id":86883,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"27012:21:168","nodeType":"VariableDeclaration","scope":86906,"src":"27004:29:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86882,"name":"uint256","nodeType":"ElementaryTypeName","src":"27004:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86884,"nodeType":"VariableDeclarationStatement","src":"27004:29:168"},{"assignments":[86886],"declarations":[{"constant":false,"id":86886,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"27055:21:168","nodeType":"VariableDeclaration","scope":86906,"src":"27047:29:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86885,"name":"uint256","nodeType":"ElementaryTypeName","src":"27047:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86887,"nodeType":"VariableDeclarationStatement","src":"27047:29:168"},{"assignments":[86889],"declarations":[{"constant":false,"id":86889,"mutability":"mutable","name":"_signatureZ","nameLocation":"27098:11:168","nodeType":"VariableDeclaration","scope":86906,"src":"27090:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86888,"name":"uint256","nodeType":"ElementaryTypeName","src":"27090:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86890,"nodeType":"VariableDeclarationStatement","src":"27090:19:168"},{"AST":{"nativeSrc":"27149:215:168","nodeType":"YulBlock","src":"27149:215:168","statements":[{"nativeSrc":"27167:53:168","nodeType":"YulAssignment","src":"27167:53:168","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"27202:10:168","nodeType":"YulIdentifier","src":"27202:10:168"},{"kind":"number","nativeSrc":"27214:4:168","nodeType":"YulLiteral","src":"27214:4:168","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27198:3:168","nodeType":"YulIdentifier","src":"27198:3:168"},"nativeSrc":"27198:21:168","nodeType":"YulFunctionCall","src":"27198:21:168"}],"functionName":{"name":"mload","nativeSrc":"27192:5:168","nodeType":"YulIdentifier","src":"27192:5:168"},"nativeSrc":"27192:28:168","nodeType":"YulFunctionCall","src":"27192:28:168"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"27167:21:168","nodeType":"YulIdentifier","src":"27167:21:168"}]},{"nativeSrc":"27237:53:168","nodeType":"YulAssignment","src":"27237:53:168","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"27272:10:168","nodeType":"YulIdentifier","src":"27272:10:168"},{"kind":"number","nativeSrc":"27284:4:168","nodeType":"YulLiteral","src":"27284:4:168","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"27268:3:168","nodeType":"YulIdentifier","src":"27268:3:168"},"nativeSrc":"27268:21:168","nodeType":"YulFunctionCall","src":"27268:21:168"}],"functionName":{"name":"mload","nativeSrc":"27262:5:168","nodeType":"YulIdentifier","src":"27262:5:168"},"nativeSrc":"27262:28:168","nodeType":"YulFunctionCall","src":"27262:28:168"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"27237:21:168","nodeType":"YulIdentifier","src":"27237:21:168"}]},{"nativeSrc":"27307:43:168","nodeType":"YulAssignment","src":"27307:43:168","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"27332:10:168","nodeType":"YulIdentifier","src":"27332:10:168"},{"kind":"number","nativeSrc":"27344:4:168","nodeType":"YulLiteral","src":"27344:4:168","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"27328:3:168","nodeType":"YulIdentifier","src":"27328:3:168"},"nativeSrc":"27328:21:168","nodeType":"YulFunctionCall","src":"27328:21:168"}],"functionName":{"name":"mload","nativeSrc":"27322:5:168","nodeType":"YulIdentifier","src":"27322:5:168"},"nativeSrc":"27322:28:168","nodeType":"YulFunctionCall","src":"27322:28:168"},"variableNames":[{"name":"_signatureZ","nativeSrc":"27307:11:168","nodeType":"YulIdentifier","src":"27307:11:168"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":86868,"isOffset":false,"isSlot":false,"src":"27202:10:168","valueSize":1},{"declaration":86868,"isOffset":false,"isSlot":false,"src":"27272:10:168","valueSize":1},{"declaration":86868,"isOffset":false,"isSlot":false,"src":"27332:10:168","valueSize":1},{"declaration":86883,"isOffset":false,"isSlot":false,"src":"27167:21:168","valueSize":1},{"declaration":86886,"isOffset":false,"isSlot":false,"src":"27237:21:168","valueSize":1},{"declaration":86889,"isOffset":false,"isSlot":false,"src":"27307:11:168","valueSize":1}],"flags":["memory-safe"],"id":86891,"nodeType":"InlineAssembly","src":"27124:240:168"},{"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":86894,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"27684:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27695:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86091,"src":"27684:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":86896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27715:1:168","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":86083,"src":"27684:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":86897,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86838,"src":"27734:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27745:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86091,"src":"27734:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":86899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27765:1:168","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"27734:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86900,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86883,"src":"27784:21:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86901,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86886,"src":"27823:21:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86902,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86889,"src":"27862:11:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86903,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86845,"src":"27891:12:168","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":86892,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62425,"src":"27645:5:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$62425_$","typeString":"type(library FROST)"}},"id":86893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27651:15:168","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":62424,"src":"27645:21:168","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":86904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27645:272:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":86772,"id":86905,"nodeType":"Return","src":"27638:279:168"}]}},{"expression":{"hexValue":"66616c7365","id":86999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29250:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":86772,"id":87000,"nodeType":"Return","src":"29243:12:168"}]},"documentation":{"id":86753,"nodeType":"StructuredDocumentation","src":"24964:480:168","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":"25458:20:168","parameters":{"id":86769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86756,"mutability":"mutable","name":"router","nameLocation":"25512:6:168","nodeType":"VariableDeclaration","scope":87002,"src":"25488:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86755,"nodeType":"UserDefinedTypeName","pathNode":{"id":86754,"name":"IRouter.Storage","nameLocations":["25488:7:168","25496:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"25488:15:168"},"referencedDeclaration":77269,"src":"25488:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":86758,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"25536:22:168","nodeType":"VariableDeclaration","scope":87002,"src":"25528:30:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25528:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86760,"mutability":"mutable","name":"_dataHash","nameLocation":"25576:9:168","nodeType":"VariableDeclaration","scope":87002,"src":"25568:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25568:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86763,"mutability":"mutable","name":"_signatureType","nameLocation":"25609:14:168","nodeType":"VariableDeclaration","scope":87002,"src":"25595:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"},"typeName":{"id":86762,"nodeType":"UserDefinedTypeName","pathNode":{"id":86761,"name":"SignatureType","nameLocations":["25595:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":86423,"src":"25595:13:168"},"referencedDeclaration":86423,"src":"25595:13:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":86766,"mutability":"mutable","name":"_signatures","nameLocation":"25650:11:168","nodeType":"VariableDeclaration","scope":87002,"src":"25633:28:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":86764,"name":"bytes","nodeType":"ElementaryTypeName","src":"25633:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":86765,"nodeType":"ArrayTypeName","src":"25633:7:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":86768,"mutability":"mutable","name":"ts","nameLocation":"25679:2:168","nodeType":"VariableDeclaration","scope":87002,"src":"25671:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86767,"name":"uint256","nodeType":"ElementaryTypeName","src":"25671:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25478:209:168"},"returnParameters":{"id":86772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87002,"src":"25706:4:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86770,"name":"bool","nodeType":"ElementaryTypeName","src":"25706:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25705:6:168"},"scope":87300,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":87019,"nodeType":"FunctionDefinition","src":"29381:166:168","nodes":[],"body":{"id":87018,"nodeType":"Block","src":"29486:61:168","nodes":[],"statements":[{"expression":{"arguments":[{"id":87013,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87006,"src":"29516:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":87014,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29524:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":87015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29530:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"29524:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87012,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87074,"src":"29503:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":87016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29503:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":87011,"id":87017,"nodeType":"Return","src":"29496:44:168"}]},"documentation":{"id":87003,"nodeType":"StructuredDocumentation","src":"29268:108:168","text":" @dev Returns the validators for the current era.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"currentEraValidators","nameLocation":"29390:20:168","parameters":{"id":87007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87006,"mutability":"mutable","name":"router","nameLocation":"29435:6:168","nodeType":"VariableDeclaration","scope":87019,"src":"29411:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":87005,"nodeType":"UserDefinedTypeName","pathNode":{"id":87004,"name":"IRouter.Storage","nameLocations":["29411:7:168","29419:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"29411:15:168"},"referencedDeclaration":77269,"src":"29411:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"29410:32:168"},"returnParameters":{"id":87011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87010,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87019,"src":"29466:18:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":87009,"nodeType":"UserDefinedTypeName","pathNode":{"id":87008,"name":"Validators","nameLocations":["29466:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"29466:10:168"},"referencedDeclaration":86107,"src":"29466:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29465:20:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87046,"nodeType":"FunctionDefinition","src":"29753:322:168","nodes":[],"body":{"id":87045,"nodeType":"Block","src":"29859:216:168","nodes":[],"statements":[{"condition":{"arguments":[{"id":87030,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87023,"src":"29899:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":87031,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29907:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":87032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29913:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"29907:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87029,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87141,"src":"29873:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":87033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29873:50:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":87043,"nodeType":"Block","src":"30000:69:168","statements":[{"expression":{"expression":{"expression":{"id":87039,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87023,"src":"30021:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30028:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"30021:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":87041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30047:11:168","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":86376,"src":"30021:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":87028,"id":87042,"nodeType":"Return","src":"30014:44:168"}]},"id":87044,"nodeType":"IfStatement","src":"29869:200:168","trueBody":{"id":87038,"nodeType":"Block","src":"29925:69:168","statements":[{"expression":{"expression":{"expression":{"id":87034,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87023,"src":"29946:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29953:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"29946:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":87036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29972:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86373,"src":"29946:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":87028,"id":87037,"nodeType":"Return","src":"29939:44:168"}]}}]},"documentation":{"id":87020,"nodeType":"StructuredDocumentation","src":"29553:195:168","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":"29762:21:168","parameters":{"id":87024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87023,"mutability":"mutable","name":"router","nameLocation":"29808:6:168","nodeType":"VariableDeclaration","scope":87046,"src":"29784:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":87022,"nodeType":"UserDefinedTypeName","pathNode":{"id":87021,"name":"IRouter.Storage","nameLocations":["29784:7:168","29792:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"29784:15:168"},"referencedDeclaration":77269,"src":"29784:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"29783:32:168"},"returnParameters":{"id":87028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87027,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87046,"src":"29839:18:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":87026,"nodeType":"UserDefinedTypeName","pathNode":{"id":87025,"name":"Validators","nameLocations":["29839:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"29839:10:168"},"referencedDeclaration":86107,"src":"29839:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29838:20:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87074,"nodeType":"FunctionDefinition","src":"30212:312:168","nodes":[],"body":{"id":87073,"nodeType":"Block","src":"30321:203:168","nodes":[],"statements":[{"condition":{"arguments":[{"id":87059,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87050,"src":"30361:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":87060,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87052,"src":"30369:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87058,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87141,"src":"30335:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":87061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30335:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":87071,"nodeType":"Block","src":"30449:69:168","statements":[{"expression":{"expression":{"expression":{"id":87067,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87050,"src":"30470:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30477:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"30470:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":87069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30496:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86373,"src":"30470:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":87057,"id":87070,"nodeType":"Return","src":"30463:44:168"}]},"id":87072,"nodeType":"IfStatement","src":"30331:187:168","trueBody":{"id":87066,"nodeType":"Block","src":"30374:69:168","statements":[{"expression":{"expression":{"expression":{"id":87062,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87050,"src":"30395:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30402:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"30395:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":87064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30421:11:168","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":86376,"src":"30395:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":87057,"id":87065,"nodeType":"Return","src":"30388:44:168"}]}}]},"documentation":{"id":87047,"nodeType":"StructuredDocumentation","src":"30081:126:168","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":"30221:12:168","parameters":{"id":87053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87050,"mutability":"mutable","name":"router","nameLocation":"30258:6:168","nodeType":"VariableDeclaration","scope":87074,"src":"30234:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":87049,"nodeType":"UserDefinedTypeName","pathNode":{"id":87048,"name":"IRouter.Storage","nameLocations":["30234:7:168","30242:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"30234:15:168"},"referencedDeclaration":77269,"src":"30234:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":87052,"mutability":"mutable","name":"ts","nameLocation":"30274:2:168","nodeType":"VariableDeclaration","scope":87074,"src":"30266:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87051,"name":"uint256","nodeType":"ElementaryTypeName","src":"30266:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30233:44:168"},"returnParameters":{"id":87057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87074,"src":"30301:18:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":87055,"nodeType":"UserDefinedTypeName","pathNode":{"id":87054,"name":"Validators","nameLocations":["30301:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"30301:10:168"},"referencedDeclaration":86107,"src":"30301:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"30300:20:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87141,"nodeType":"FunctionDefinition","src":"30931:863:168","nodes":[],"body":{"id":87140,"nodeType":"Block","src":"31075:719:168","nodes":[],"statements":[{"assignments":[87086],"declarations":[{"constant":false,"id":87086,"mutability":"mutable","name":"ts0","nameLocation":"31093:3:168","nodeType":"VariableDeclaration","scope":87140,"src":"31085:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87085,"name":"uint256","nodeType":"ElementaryTypeName","src":"31085:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":87091,"initialValue":{"expression":{"expression":{"expression":{"id":87087,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87078,"src":"31099:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31106:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"31099:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":87089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31125:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86373,"src":"31099:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}},"id":87090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31137:16:168","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":86106,"src":"31099:54:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31085:68:168"},{"assignments":[87093],"declarations":[{"constant":false,"id":87093,"mutability":"mutable","name":"ts1","nameLocation":"31171:3:168","nodeType":"VariableDeclaration","scope":87140,"src":"31163:11:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87092,"name":"uint256","nodeType":"ElementaryTypeName","src":"31163:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":87098,"initialValue":{"expression":{"expression":{"expression":{"id":87094,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87078,"src":"31177:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31184:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"31177:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":87096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31203:11:168","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":86376,"src":"31177:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}},"id":87097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31215:16:168","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":86106,"src":"31177:54:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31163:68:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87100,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87086,"src":"31305:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":87101,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87093,"src":"31312:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31305:10:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":87103,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86077,"src":"31317:27:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":87104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31317:29:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":87099,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31297:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":87105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31297:50:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87106,"nodeType":"ExpressionStatement","src":"31297:50:168"},{"assignments":[87108],"declarations":[{"constant":false,"id":87108,"mutability":"mutable","name":"ts1Greater","nameLocation":"31363:10:168","nodeType":"VariableDeclaration","scope":87140,"src":"31358:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87107,"name":"bool","nodeType":"ElementaryTypeName","src":"31358:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":87112,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87109,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87086,"src":"31376:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":87110,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87093,"src":"31382:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31376:9:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31358:27:168"},{"assignments":[87114],"declarations":[{"constant":false,"id":87114,"mutability":"mutable","name":"tsGe0","nameLocation":"31400:5:168","nodeType":"VariableDeclaration","scope":87140,"src":"31395:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87113,"name":"bool","nodeType":"ElementaryTypeName","src":"31395:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":87118,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87115,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87086,"src":"31408:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":87116,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87080,"src":"31415:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31408:9:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31395:22:168"},{"assignments":[87120],"declarations":[{"constant":false,"id":87120,"mutability":"mutable","name":"tsGe1","nameLocation":"31432:5:168","nodeType":"VariableDeclaration","scope":87140,"src":"31427:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87119,"name":"bool","nodeType":"ElementaryTypeName","src":"31427:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":87124,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87121,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87093,"src":"31440:3:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":87122,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87080,"src":"31447:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31440:9:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31427:22:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":87128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87126,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87114,"src":"31541:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":87127,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87120,"src":"31550:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31541:14:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":87129,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86080,"src":"31557:30:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":87130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31557:32:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":87125,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31533:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":87131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31533:57:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87132,"nodeType":"ExpressionStatement","src":"31533:57:168"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":87138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87133,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87108,"src":"31757:10:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":87136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87134,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87114,"src":"31772:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":87135,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87120,"src":"31781:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31772:14:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":87137,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31771:16:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31757:30:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":87084,"id":87139,"nodeType":"Return","src":"31750:37:168"}]},"documentation":{"id":87075,"nodeType":"StructuredDocumentation","src":"30530:396:168","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":"30940:25:168","parameters":{"id":87081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87078,"mutability":"mutable","name":"router","nameLocation":"30990:6:168","nodeType":"VariableDeclaration","scope":87141,"src":"30966:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":87077,"nodeType":"UserDefinedTypeName","pathNode":{"id":87076,"name":"IRouter.Storage","nameLocations":["30966:7:168","30974:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"30966:15:168"},"referencedDeclaration":77269,"src":"30966:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":87080,"mutability":"mutable","name":"ts","nameLocation":"31006:2:168","nodeType":"VariableDeclaration","scope":87141,"src":"30998:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87079,"name":"uint256","nodeType":"ElementaryTypeName","src":"30998:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30965:44:168"},"returnParameters":{"id":87084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87083,"mutability":"mutable","name":"isSlot1","nameLocation":"31062:7:168","nodeType":"VariableDeclaration","scope":87141,"src":"31057:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87082,"name":"bool","nodeType":"ElementaryTypeName","src":"31057:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31056:14:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87187,"nodeType":"FunctionDefinition","src":"32296:456:168","nodes":[],"body":{"id":87186,"nodeType":"Block","src":"32479:273:168","nodes":[],"statements":[{"assignments":[87154],"declarations":[{"constant":false,"id":87154,"mutability":"mutable","name":"a","nameLocation":"32497:1:168","nodeType":"VariableDeclaration","scope":87186,"src":"32489:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87153,"name":"uint256","nodeType":"ElementaryTypeName","src":"32489:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":87155,"nodeType":"VariableDeclarationStatement","src":"32489:9:168"},{"id":87162,"nodeType":"UncheckedBlock","src":"32508:76:168","statements":[{"expression":{"id":87160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87156,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87154,"src":"32532:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87157,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87144,"src":"32536:16:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":87158,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87146,"src":"32555:18:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32536:37:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32532:41:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":87161,"nodeType":"ExpressionStatement","src":"32532:41:168"}]},{"assignments":[87164],"declarations":[{"constant":false,"id":87164,"mutability":"mutable","name":"d","nameLocation":"32601:1:168","nodeType":"VariableDeclaration","scope":87186,"src":"32593:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87163,"name":"uint256","nodeType":"ElementaryTypeName","src":"32593:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":87168,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87165,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87154,"src":"32605:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":87166,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87148,"src":"32609:20:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32605:24:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32593:36:168"},{"assignments":[87170],"declarations":[{"constant":false,"id":87170,"mutability":"mutable","name":"r","nameLocation":"32647:1:168","nodeType":"VariableDeclaration","scope":87186,"src":"32639:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87169,"name":"uint256","nodeType":"ElementaryTypeName","src":"32639:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":87174,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87171,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87154,"src":"32651:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":87172,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87148,"src":"32655:20:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32651:24:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32639:36:168"},{"id":87185,"nodeType":"UncheckedBlock","src":"32685:61:168","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87175,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87170,"src":"32717:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":87176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32721:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32717:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":87178,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32716:7:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":87182,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87164,"src":"32734:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":87183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"32716:19:168","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87179,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87164,"src":"32726:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":87180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32730:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32726:5:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":87152,"id":87184,"nodeType":"Return","src":"32709:26:168"}]}]},"documentation":{"id":87142,"nodeType":"StructuredDocumentation","src":"31800:491:168","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":"32305:19:168","parameters":{"id":87149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87144,"mutability":"mutable","name":"validatorsAmount","nameLocation":"32333:16:168","nodeType":"VariableDeclaration","scope":87187,"src":"32325:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87143,"name":"uint256","nodeType":"ElementaryTypeName","src":"32325:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87146,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"32359:18:168","nodeType":"VariableDeclaration","scope":87187,"src":"32351:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":87145,"name":"uint128","nodeType":"ElementaryTypeName","src":"32351:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":87148,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"32387:20:168","nodeType":"VariableDeclaration","scope":87187,"src":"32379:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":87147,"name":"uint128","nodeType":"ElementaryTypeName","src":"32379:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"32324:84:168"},"returnParameters":{"id":87152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87151,"mutability":"mutable","name":"threshold","nameLocation":"32464:9:168","nodeType":"VariableDeclaration","scope":87187,"src":"32456:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87150,"name":"uint256","nodeType":"ElementaryTypeName","src":"32456:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32455:19:168"},"scope":87300,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87210,"nodeType":"FunctionDefinition","src":"32937:179:168","nodes":[],"body":{"id":87209,"nodeType":"Block","src":"33033:83:168","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87198,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87193,"src":"33051:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":87199,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87191,"src":"33056:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33063:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"33056:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":87201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33076:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86258,"src":"33056:29:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"33051:34:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":87203,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33050:36:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":87204,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87191,"src":"33089:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33096:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"33089:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"id":87206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33106:3:168","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86360,"src":"33089:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33050:59:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":87197,"id":87208,"nodeType":"Return","src":"33043:66:168"}]},"documentation":{"id":87188,"nodeType":"StructuredDocumentation","src":"32758:174:168","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":"32946:10:168","parameters":{"id":87194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87191,"mutability":"mutable","name":"router","nameLocation":"32981:6:168","nodeType":"VariableDeclaration","scope":87210,"src":"32957:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":87190,"nodeType":"UserDefinedTypeName","pathNode":{"id":87189,"name":"IRouter.Storage","nameLocations":["32957:7:168","32965:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"32957:15:168"},"referencedDeclaration":77269,"src":"32957:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":87193,"mutability":"mutable","name":"ts","nameLocation":"32997:2:168","nodeType":"VariableDeclaration","scope":87210,"src":"32989:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87192,"name":"uint256","nodeType":"ElementaryTypeName","src":"32989:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32956:44:168"},"returnParameters":{"id":87197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87196,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87210,"src":"33024:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87195,"name":"uint256","nodeType":"ElementaryTypeName","src":"33024:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33023:9:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87235,"nodeType":"FunctionDefinition","src":"33332:199:168","nodes":[],"body":{"id":87234,"nodeType":"Block","src":"33430:101:168","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":87221,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87214,"src":"33447:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33454:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"33447:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":87223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33467:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86258,"src":"33447:29:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":87231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":87225,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87214,"src":"33490:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":87226,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87216,"src":"33498:2:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87224,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87210,"src":"33479:10:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":87227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33479:22:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":87228,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87214,"src":"33504:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":87229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33511:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"33504:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"id":87230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33521:3:168","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86360,"src":"33504:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33479:45:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33447:77:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":87220,"id":87233,"nodeType":"Return","src":"33440:84:168"}]},"documentation":{"id":87211,"nodeType":"StructuredDocumentation","src":"33122:205:168","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":"33341:12:168","parameters":{"id":87217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87214,"mutability":"mutable","name":"router","nameLocation":"33378:6:168","nodeType":"VariableDeclaration","scope":87235,"src":"33354:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":87213,"nodeType":"UserDefinedTypeName","pathNode":{"id":87212,"name":"IRouter.Storage","nameLocations":["33354:7:168","33362:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"33354:15:168"},"referencedDeclaration":77269,"src":"33354:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":87216,"mutability":"mutable","name":"ts","nameLocation":"33394:2:168","nodeType":"VariableDeclaration","scope":87235,"src":"33386:10:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87215,"name":"uint256","nodeType":"ElementaryTypeName","src":"33386:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33353:44:168"},"returnParameters":{"id":87220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87235,"src":"33421:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87218,"name":"uint256","nodeType":"ElementaryTypeName","src":"33421:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33420:9:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87258,"nodeType":"FunctionDefinition","src":"33871:467:168","nodes":[],"body":{"id":87257,"nodeType":"Block","src":"34017:321:168","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":87247,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87239,"src":"34089:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":87248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34100:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86091,"src":"34089:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":87249,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87239,"src":"34175:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":87250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34186:40:168","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":86094,"src":"34175:51:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":87251,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87239,"src":"34246:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":87252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34257:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":86103,"src":"34246:15:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":87253,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87239,"src":"34293:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":87254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34304:16:168","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":86106,"src":"34293:27:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_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":87245,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"34034:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":87246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34039:14:168","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":86119,"src":"34034:19:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$86119_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":87255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["34068:19:168","34133:40:168","34240:4:168","34275:16:168"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"34034:297:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":87244,"id":87256,"nodeType":"Return","src":"34027:304:168"}]},"documentation":{"id":87236,"nodeType":"StructuredDocumentation","src":"33537:329:168","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":"33880:6:168","parameters":{"id":87240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87239,"mutability":"mutable","name":"validators","nameLocation":"33911:10:168","nodeType":"VariableDeclaration","scope":87258,"src":"33887:34:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":87238,"nodeType":"UserDefinedTypeName","pathNode":{"id":87237,"name":"Gear.Validators","nameLocations":["33887:4:168","33892:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"33887:15:168"},"referencedDeclaration":86107,"src":"33887:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"33886:36:168"},"returnParameters":{"id":87244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87243,"mutability":"mutable","name":"validatorsView","nameLocation":"33997:14:168","nodeType":"VariableDeclaration","scope":87258,"src":"33970:41:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":87242,"nodeType":"UserDefinedTypeName","pathNode":{"id":87241,"name":"Gear.ValidatorsView","nameLocations":["33970:4:168","33975:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":86119,"src":"33970:19:168"},"referencedDeclaration":86119,"src":"33970:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"33969:43:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":87299,"nodeType":"FunctionDefinition","src":"34635:581:168","nodes":[],"body":{"id":87298,"nodeType":"Block","src":"34793:423:168","nodes":[],"statements":[{"assignments":[87272],"declarations":[{"constant":false,"id":87272,"mutability":"mutable","name":"validators0","nameLocation":"34830:11:168","nodeType":"VariableDeclaration","scope":87298,"src":"34803:38:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":87271,"nodeType":"UserDefinedTypeName","pathNode":{"id":87270,"name":"Gear.ValidatorsView","nameLocations":["34803:4:168","34808:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":86119,"src":"34803:19:168"},"referencedDeclaration":86119,"src":"34803:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":87277,"initialValue":{"arguments":[{"expression":{"id":87274,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87262,"src":"34851:8:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":87275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34860:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86373,"src":"34851:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}],"id":87273,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[87258,87299],"referencedDeclaration":87258,"src":"34844:6:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$86107_storage_ptr_$returns$_t_struct$_ValidatorsView_$86119_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":87276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34844:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34803:69:168"},{"assignments":[87282],"declarations":[{"constant":false,"id":87282,"mutability":"mutable","name":"validators1","nameLocation":"34909:11:168","nodeType":"VariableDeclaration","scope":87298,"src":"34882:38:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":87281,"nodeType":"UserDefinedTypeName","pathNode":{"id":87280,"name":"Gear.ValidatorsView","nameLocations":["34882:4:168","34887:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":86119,"src":"34882:19:168"},"referencedDeclaration":86119,"src":"34882:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":87287,"initialValue":{"arguments":[{"expression":{"id":87284,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87262,"src":"34930:8:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":87285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34939:11:168","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":86376,"src":"34930:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}],"id":87283,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[87258,87299],"referencedDeclaration":87258,"src":"34923:6:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$86107_storage_ptr_$returns$_t_struct$_ValidatorsView_$86119_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":87286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34923:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34882:69:168"},{"expression":{"arguments":[{"expression":{"id":87290,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87262,"src":"35030:8:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":87291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35039:18:168","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86368,"src":"35030:27:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":87292,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87262,"src":"35093:8:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":87293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35102:20:168","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86370,"src":"35093:29:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":87294,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87272,"src":"35149:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":87295,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87282,"src":"35187:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$86119_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":87288,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"34968:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":87289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34973:22:168","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":86389,"src":"34968:27:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$86389_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":87296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["35010:18:168","35071:20:168","35136:11:168","35174:11:168"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"34968:241:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86389_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":87267,"id":87297,"nodeType":"Return","src":"34961:248:168"}]},"documentation":{"id":87259,"nodeType":"StructuredDocumentation","src":"34344:286:168","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":"34644:6:168","parameters":{"id":87263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87262,"mutability":"mutable","name":"settings","nameLocation":"34683:8:168","nodeType":"VariableDeclaration","scope":87299,"src":"34651:40:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":87261,"nodeType":"UserDefinedTypeName","pathNode":{"id":87260,"name":"Gear.ValidationSettings","nameLocations":["34651:4:168","34656:18:168"],"nodeType":"IdentifierPath","referencedDeclaration":86377,"src":"34651:23:168"},"referencedDeclaration":86377,"src":"34651:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"34650:42:168"},"returnParameters":{"id":87267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87266,"mutability":"mutable","name":"settingsView","nameLocation":"34775:12:168","nodeType":"VariableDeclaration","scope":87299,"src":"34740:47:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86389_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":87265,"nodeType":"UserDefinedTypeName","pathNode":{"id":87264,"name":"Gear.ValidationSettingsView","nameLocations":["34740:4:168","34745:22:168"],"nodeType":"IdentifierPath","referencedDeclaration":86389,"src":"34740:27:168"},"referencedDeclaration":86389,"src":"34740:27:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86389_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"34739:49:168"},"scope":87300,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":86033,"nodeType":"StructuredDocumentation","src":"784:770:168","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":[87300],"name":"Gear","nameLocation":"1563:4:168","scope":87301,"usedErrors":[86062,86065,86068,86071,86074,86077,86080],"usedEvents":[]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":168} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Middleware.json b/ethexe/ethereum/abi/Middleware.json index 3433c49acbf..ea198b5c312 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":"0x60a080604052346100c257306080525f516020613d285f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6190816100c78239608051818181611c610152611d3d0152f35b6001600160401b0319166001600160401b039081175f516020613d285f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf91461249e5780630a71094c146121f65780632633b70f146121425780632acde09814611fea578063373bba1f14611fb45780633ccce78914611f775780633d15e74e14611f4a5780634455a38f14611f17578063461e7a8e14611ee15780634f1ef28614611cb557806352d1902d14611c4e5780636c2eb350146118115780636d1064eb146117a45780636e5c793214611767578063709d06ae14611731578063715018a6146116c8578063729e2f36146115aa57806379a8b245146115745780637fbe95b5146111b157806386c241a1146111535780638da5cb5b1461111e578063936f4330146110e1578063945cf2dd146110ab57806396115bc214610fdf5780639e03231114610fb1578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c215f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e34565b61022761366b565b613444565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f5254013390613565565b50346101ff5760403660031901126101ff57602061029261027b612e34565b610283612ec4565b9061028d826136ef565b613401565b604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e5e565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c215f395f51905f525460405161041481612e5e565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eaf565b6132e0565b9091604051938493604085526040850190612ed9565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c215f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387612fc7565b5f516020613c215f395f51905f52549091906106bc906015016001600160a01b036106a785612f7e565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612f7e565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612e8e565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f2c565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612e8e565b81019061300a565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612e8e565b810190612feb565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612e8e565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f2c565b0390f35b50346101ff576102e03660031901126101ff575f516020613c415f395f51905f52546001600160401b0360ff8260401c1615911680159081610fa9575b6001149081610f9f575b159081610f96575b50610f87578060016001600160401b03195f516020613c415f395f51905f525416175f516020613c415f395f51905f5255610f57575b6004356001600160a01b03811681036107f4576108f5906108ed613995565b610227613995565b60409081516109048382612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093761366b565b905190205f190183526020832060ff19165f516020613c215f395f51905f5281905560243565ffffffffffff81168103610f5357815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f535781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5357815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5357815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5357815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f535765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f4b576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f4f5781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f4b576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f4b576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f4b576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f4b576009820180546001600160a01b0319166001600160a01b03909216919091179055610bc7612f50565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf0612f67565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f4b57600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f4b57600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f4b57600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f4b57600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f4b576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f4b576011820180546001600160a01b0319166001600160a01b039283161790558690610d1a612f50565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f2c57610f36575b506001600160a01b03610d55612f67565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f2c57610f13575b5050549065ffffffffffff821615610f045765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef0578310610ee1578265ffffffffffff8260601c1610610ed2578265ffffffffffff8260901c1610610ec35760c01c65ffffffffffff16908115610eb4575465ffffffffffff16908115610ea55765ffffffffffff91610e1e91613019565b1611610e96576003905410610e8757610e35575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f1d91612e8e565b610f2857855f610d85565b8580fd5b87513d84823e3d90fd5b81610f4091612e8e565b610f2857855f610d44565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c415f395f51905f525416175f516020613c415f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c215f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57610ff9612e34565b5f516020613c215f395f51905f52546001600160a01b0390911690601281019061104361102684846139c0565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff811615929150821561107b575b505061106c57906110689161397b565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a08291826110944261394c565b955460601c1690613019565b169116105f80611058565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c6110fe612e34565b611107816134b5565b60155f516020613c215f395f51905f5254016135ef565b50346101ff57806003193601126101ff575f516020613be15f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff5761116d612e34565b5f516020613c215f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115605760405281600401356001600160401b03811161155c5782013660238201121561155c57600481013561122c81612f15565b9161123a6040519384612e8e565b818352602060048185019360061b8301010190368211610f4b57602401915b8183106114fe57505050815261127c604460208301936024810135855201612e4a565b906040810191825261128c612ec4565b935f516020613c215f395f51905f525490600782019460018060a01b0386541633036114ef57845160068401546001600160a01b039182169116036114e057819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a1015611499578961130191613063565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113ba8b6113ac8b61139a6113498f6110269060018060a01b038a5116906139c0565b9a546040516001600160a01b03909c169b925090506113688683612e8e565b838252604051936113798786612e8e565b845260405197889687015260408601526080606086015260a0850190612f2c565b838103601f1901608085015290612f2c565b03601f198101835282612e8e565b85548751838d0180519096909290916001600160a01b039081169116823b1561149557908c8094939261141a6040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f2c565b03925af1801561148a57908991611475575b50509161146d91600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611468605483612e8e565b6132a0565b9801976112ec565b8161147f91612e8e565b610f4f57875f61142c565b6040513d8b823e3d90fd5b8c80fd5b886114d286848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611468605483612e8e565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f4b57604051604081018181106001600160401b038211176115485791602091604093845261153386612e4a565b81528286013583820152815201920191611259565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115c4612e34565b5f516020613c215f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116b95760068101546001600160a01b03928316921682036116aa57600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af1801561169f5761168a575b602083836040519083820192835260408201526040815261167f606082612e8e565b519020604051908152f35b611695848092612e8e565b6107f4578261165d565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e161366b565b5f516020613be15f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff57610845611790611787612eaf565b60243590613084565b604051918291602083526020830190612ed9565b50346101ff5760203660031901126101ff576117be612e34565b5f516020613c215f395f51905f5254600f0180549091906001600160a01b031633036118025781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff5761182a61366b565b5f516020613c415f395f51905f525460ff8160401c16908115611c39575b50611c2a575f516020613c415f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613be15f395f51905f525461189a906001600160a01b03166108ed613995565b5f516020613c215f395f51905f5254906040516118b8604082612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118eb61366b565b905190205f190181526020812060ff19165f516020613c215f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a28600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b42575b50506012808401939290820191815b8354811015611abc5780611ab5611aae6001938761369e565b90896136cd565b5001611a95565b506015808501929101815b8154811015611aee5780611ae7611ae06001938561369e565b90876136cd565b5001611ac7565b8260ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a86565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611848565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611ca65760206040515f516020613c015f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cca612e34565b90602435916001600160401b0383116107f857366023840112156107f85782600401356001600160401b038111611ecd5760405193611d13601f8301601f191660200186612e8e565b818552366024838301011161155c5781849260246020930183880137850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611eab575b50611e9c57611d7561366b565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596611e68575b50611dba57634c9c8ce360e01b84526004839052602484fd5b9091845f516020613c015f395f51905f528103611e565750823b15611e44575f516020613c015f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115611e2b5761106891613a17565b505034611e355780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611e94575b81611e8460209383612e8e565b81010312610f535751945f611da1565b3d9150611e77565b63703e46dd60e11b8252600482fd5b5f516020613c015f395f51905f52546001600160a01b0316141590505f611d68565b634e487b7160e01b83526041600452602483fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f52540133906135ef565b50346101ff5760203660031901126101ff5761022c611f94612e34565b611f9d816134b5565b60155f516020613c215f395f51905f525401613565565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa908115612109578391612123575b501561211457600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa9081156121095783916120da575b50156120cb576120b49065ffffffffffff6120a84261394c565b169060123391016136cd565b156120bc5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b6120fc915060203d602011612102575b6120f48183612e8e565b81019061304b565b5f61208e565b503d6120ea565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61213c915060203d602011612102576120f48183612e8e565b5f612046565b50346101ff5760203660031901126101ff5761215c612e34565b612165816134b5565b5f516020613c215f395f51905f52546001600160a01b0390911690601581019061219261102684846139c0565b5065ffffffffffff81161592915082156121c6575b50506121b757906110689161397b565b6347a11ef760e11b8352600483fd5b65ffffffffffff9192506121eb8291826121df4261394c565b955460901c1690613019565b169116105f806121a7565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c215f395f51905f5254600f8101546001600160a01b0316330361248f5781906020905b6004356004013583101561248b5760248360051b600435010135608219600435360301811215610f535760043501906122d56001600160a01b036122bf60248501612f7e565b165f908152601383016020526040902054151590565b1561247c57845b6122ec6064840160248501612f92565b905081101561246f5761230f816123096064860160248701612f92565b90612fc7565b6123396001600160a01b0361232383612f7e565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361235683612f7e565b166040519384809263b134427160e01b82525afa91821561169f578492612450575b5060048501549161238b60248801612f7e565b604488013565ffffffffffff81169003610f2857889586946124106040516123b38882612e8e565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f2c565b03926001600160a01b03165af191821561079357600192612433575b50016122dc565b61244990863d881161078c5761077d8183612e8e565b505f61242c565b612468919250873d89116107c4576107b68183612e8e565b905f612378565b5092600191500191612279565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b60576040366003190112612b60576124b8612e34565b6024356001600160a01b038116929190839003612b60576124d8816134b5565b5f516020613c215f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612cf2575f91612e15575b5015612e065760405163054fd4d560e41b8152602081600481875afa908115612cf2575f91612de7575b5060038201906001600160401b0380835416911603612dd85760405163d8dfeb4560e01b8152602081600481885afa908115612cf2575f91612db9575b5060068301546001600160a01b03908116911603612daa576040516327f843b560e11b8152602081600481885afa908115612cf2575f91612d8b575b5065ffffffffffff80845460301c169116908110612d7c5760405163142186b760e21b8152602081600481895afa908115612cf2575f91612d5d575b5015612d4e57604051630ce9b79360e41b8152602081600481895afa908115612cf2575f91612d2f575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612cf2575f91612cfd575b5019612ca0575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612c81575b506001600160a01b0316612c6f57604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c50575b5015612c415760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c22575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa91821561148a578992612bf6575b506001600160401b0380915460401c16911603612be757604051631a684c7560e11b8152602081600481875afa9081156107cb578891612bc8575b50612bb95760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612b8a575b5065ffffffffffff855460c01c1665ffffffffffff821610612b7b576127c165ffffffffffff918260018801541690613019565b1611612b6c5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b36575b50600284015410612b275754906020926128438460405161280c8282612e8e565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f2c565b0381865afa9081156107cb578891612b0a575b506001600160a01b031680612ae3575060110154604051926001600160a01b03909116906128848585612e8e565b8784523685850137813b15610f4b579186916128ca93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f2c565b03925af18015612a3457908591612ace575b50505b6040516313c085b760e11b81528181600481875afa908115612a34578591612ab1575b506001600160a01b031615612aa2575f516020613c215f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a6b578691612a85575b5015612a765760405163411557d160e01b815282816004818a5afa908115612a6b578691612a4e575b506001600160a01b031603612a3f5760405163054fd4d560e41b81528181600481895afa918215612a3457916001600160401b03916002938792612a07575b505016036129f85760156120b4939465ffffffffffff6129df4261394c565b1660609190911b6001600160601b0319161792016136cd565b63ded51c0b60e01b8352600483fd5b612a269250803d10612a2d575b612a1e8183612e8e565b810190613528565b5f806129c0565b503d612a14565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a659150833d85116107c4576107b68183612e8e565b5f612981565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612a9c9150833d8511612102576120f48183612e8e565b5f612958565b630c6b5ff760e31b8452600484fd5b612ac89150823d84116107c4576107b68183612e8e565b5f612902565b81612ad891612e8e565b61155c57835f6128dc565b6011909101546001600160a01b03161491506128df905057633cc6586560e21b8452600484fd5b612b219150853d87116107c4576107b68183612e8e565b5f612856565b633a2662c360e11b8652600486fd5b90506020813d602011612b64575b81612b5160209383612e8e565b81010312612b6057515f6127eb565b5f80fd5b3d9150612b44565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bac915060203d602011612bb2575b612ba48183612e8e565b810190613547565b5f61278d565b503d612b9a565b63447984b360e11b8752600487fd5b612be1915060203d602011612102576120f48183612e8e565b5f612764565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c1a829160203d602011612a2d57612a1e8183612e8e565b929150612729565b612c3b915060203d6020116107c4576107b68183612e8e565b5f6126f7565b631501f36360e21b8752600487fd5b612c69915060203d602011612102576120f48183612e8e565b5f6126cd565b60016221bb1360e11b03198752600487fd5b612c9a915060203d6020116107c4576107b68183612e8e565b5f61269b565b803b15612b60576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612cf257612cdc575b50612675565b612ce99198505f90612e8e565b5f966020612cd6565b6040513d5f823e3d90fd5b90506020813d602011612d27575b81612d1860209383612e8e565b81010312612b6057515f61266e565b3d9150612d0b565b612d48915060203d6020116107c4576107b68183612e8e565b5f612632565b636e549c1760e11b5f5260045ffd5b612d76915060203d602011612102576120f48183612e8e565b5f612608565b634934476760e01b5f5260045ffd5b612da4915060203d602011612bb257612ba48183612e8e565b5f6125cc565b63039a1fd760e21b5f5260045ffd5b612dd2915060203d6020116107c4576107b68183612e8e565b5f612590565b63bfcdc45f60e01b5f5260045ffd5b612e00915060203d602011612a2d57612a1e8183612e8e565b5f612553565b635b19e4bb60e01b5f5260045ffd5b612e2e915060203d602011612102576120f48183612e8e565b5f612529565b600435906001600160a01b0382168203612b6057565b35906001600160a01b0382168203612b6057565b61014081019081106001600160401b03821117612e7a57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e7a57604052565b6004359065ffffffffffff82168203612b6057565b6024359065ffffffffffff82168203612b6057565b90602080835192838152019201905f5b818110612ef65750505090565b82516001600160a01b0316845260209384019390920191600101612ee9565b6001600160401b038111612e7a5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b605790565b610204356001600160a01b0381168103612b605790565b356001600160a01b0381168103612b605790565b903590601e1981360301821215612b6057018035906001600160401b038211612b6057602001918160061b36038313612b6057565b9190811015612fd75760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b6057516001600160a01b0381168103612b605790565b90816020910312612b60575190565b9065ffffffffffff8091169116019065ffffffffffff821161303757565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b6057518015158103612b605790565b8051821015612fd75760209160051b010190565b9190820180921161303757565b91811561329157613094836132e0565b92815181811115613288575f5f198201828111925b8083106131af57505050506001945f19820190828211613037576130cd8287613063565b5183975b85518910156131a157816130e58a8a613063565b51036131015760018101809111613037576001909801976130d1565b9395975050909294505b6001821161311c575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613144602682612e8e565b51902090801561318d57613159910683613077565b5f19810190811161303757613184906001600160a01b039061317b9086613063565b51169184613063565b525f8080613114565b634e487b7160e01b5f52601260045260245ffd5b93959750509092945061310b565b9296958792959891945f935b613037578685035f190186811161303757841015613275576131dd8489613063565b51600185019485811161303757858c826001946131fb8f9a8f613063565b511161320c575b50505001936131bb565b61326c918d61323c8361321f8784613063565b519261322b8282613063565b516132368983613063565b52613063565b52858060a01b0361324d8583613063565b511693613236878060a01b036132638585613063565b51169183613063565b525f8c82613202565b94919895600191979894935001916130a9565b50509150915090565b6314f867c760e21b5f5260045ffd5b6132de906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612e8e565b565b906132ea826136ef565b60125f516020613c215f395f51905f52540180549261330884612f15565b916133166040519384612e8e565b848352601f1961332586612f15565b0136602085013761333585612f15565b946133436040519687612e8e565b808652601f1961335282612f15565b013660208801375f925f925b828410613372575050505080825283529190565b909192936133a76133ae84613387888661369e565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b5090613779565b156133f757836133d3916133c2848a613063565b6001600160a01b03821690526137d2565b6133dd828a613063565b526001810180911161303757600190945b0192919061335e565b50936001906133ee565b9061342d816133a761102660125f516020613c215f395f51905f52540160018060a01b038716906139c0565b1561343e5761343b916137d2565b90565b50505f90565b6001600160a01b031680156134a2575f516020613be15f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612cf2575f91613509575b50156134fa57565b630e7fea9d60e01b5f5260045ffd5b613522915060203d602011612102576120f48183612e8e565b5f6134f2565b90816020910312612b6057516001600160401b0381168103612b605790565b90816020910312612b60575165ffffffffffff81168103612b605790565b65ffffffffffff916135836110266001600160a01b038316846139c0565b91949094169384159081156135dd575b506135ce576135cb9365ffffffffffff60301b6135af4261394c565b60301b161760609190911b6001600160601b03191617916136cd565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f613593565b65ffffffffffff9161360d6110266001600160a01b038316846139c0565b949091161515908161365a575b5061364b576135cb9265ffffffffffff6136334261394c565b1660609190911b6001600160601b03191617916136cd565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f61361a565b5f516020613be15f395f51905f52546001600160a01b0316330361368b57565b63118cdaa760e01b5f523360045260245ffd5b91906136ac60029184613aa3565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b61343b929160018060a01b031691825f526002820160205260405f2055613b93565b5f516020613c215f395f51905f52549065ffffffffffff61370f4261394c565b1665ffffffffffff8216101561376257613746915465ffffffffffff808260601c169160901c168082105f14613771575090613019565b65ffffffffffff806137574261394c565b169116111561376257565b63686c69fd60e01b5f5260045ffd5b905090613019565b65ffffffffffff16801515929190836137bf575b508261379857505090565b65ffffffffffff16801592509082156137b057505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f61378d565b5f516020613c215f395f51905f52546015810180546004909201545f95948694602093869391905b86881061380b575050505050505050565b90919293949596986133a7613824866133878d8661369e565b1561394257604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612cf2576138c09189915f91613925575b506040519061386e8383612e8e565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f2c565b03916001600160a01b03165afa908115612cf2575f916138f7575b506138e890600192613077565b995b01969594939291906137fa565b90508781813d831161391e575b61390e8183612e8e565b81010312612b60575160016138db565b503d613904565b61393c9150823d84116107c4576107b68183612e8e565b5f61385f565b50986001906138ea565b65ffffffffffff81116139645765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061343b91815f52600281016020525f6040812055613ab8565b60ff5f516020613c415f395f51905f525460401c16156139b157565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f20549181831591826139f7575b50506139e5575090565b63015ab34360e11b5f5260045260245ffd5b613a0f92506001915f520160205260405f2054151590565b15815f6139db565b905f8091602081519101845af48080613a90575b15613a4b5750506040513d81523d5f602083013e60203d82010160405290565b15613a7057639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15613a81576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580613a2b5750813b1515613a2b565b8054821015612fd7575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b8b575f1981018181116130375782545f1981019190821161303757818103613b40575b50505080548015613b2c575f190190613b0d8282613aa3565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b76613b50613b609386613aa3565b90549060031b1c92839286613aa3565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613af4565b505050505f90565b5f82815260018201602052604090205461343e57805490600160401b821015612e7a5782613bcb613b60846001809601855584613aa3565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21773:159:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;7983:34:18;7979:146;;-1:-1:-1;2376:21773:159;;;;;;;;1076:13:19;2376:21773:159;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;8085:29:18;;2376:21773:159;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;2376:21773:159;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf91461249e5780630a71094c146121f65780632633b70f146121425780632acde09814611fea578063373bba1f14611fb45780633ccce78914611f775780633d15e74e14611f4a5780634455a38f14611f17578063461e7a8e14611ee15780634f1ef28614611cb557806352d1902d14611c4e5780636c2eb350146118115780636d1064eb146117a45780636e5c793214611767578063709d06ae14611731578063715018a6146116c8578063729e2f36146115aa57806379a8b245146115745780637fbe95b5146111b157806386c241a1146111535780638da5cb5b1461111e578063936f4330146110e1578063945cf2dd146110ab57806396115bc214610fdf5780639e03231114610fb1578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c215f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e34565b61022761366b565b613444565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f5254013390613565565b50346101ff5760403660031901126101ff57602061029261027b612e34565b610283612ec4565b9061028d826136ef565b613401565b604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e5e565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c215f395f51905f525460405161041481612e5e565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eaf565b6132e0565b9091604051938493604085526040850190612ed9565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c215f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387612fc7565b5f516020613c215f395f51905f52549091906106bc906015016001600160a01b036106a785612f7e565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612f7e565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612e8e565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f2c565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612e8e565b81019061300a565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612e8e565b810190612feb565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612e8e565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f2c565b0390f35b50346101ff576102e03660031901126101ff575f516020613c415f395f51905f52546001600160401b0360ff8260401c1615911680159081610fa9575b6001149081610f9f575b159081610f96575b50610f87578060016001600160401b03195f516020613c415f395f51905f525416175f516020613c415f395f51905f5255610f57575b6004356001600160a01b03811681036107f4576108f5906108ed613995565b610227613995565b60409081516109048382612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093761366b565b905190205f190183526020832060ff19165f516020613c215f395f51905f5281905560243565ffffffffffff81168103610f5357815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f535781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5357815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5357815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5357815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f535765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f4b576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f4f5781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f4b576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f4b576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f4b576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f4b576009820180546001600160a01b0319166001600160a01b03909216919091179055610bc7612f50565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf0612f67565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f4b57600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f4b57600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f4b57600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f4b57600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f4b576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f4b576011820180546001600160a01b0319166001600160a01b039283161790558690610d1a612f50565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f2c57610f36575b506001600160a01b03610d55612f67565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f2c57610f13575b5050549065ffffffffffff821615610f045765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef0578310610ee1578265ffffffffffff8260601c1610610ed2578265ffffffffffff8260901c1610610ec35760c01c65ffffffffffff16908115610eb4575465ffffffffffff16908115610ea55765ffffffffffff91610e1e91613019565b1611610e96576003905410610e8757610e35575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f1d91612e8e565b610f2857855f610d85565b8580fd5b87513d84823e3d90fd5b81610f4091612e8e565b610f2857855f610d44565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c415f395f51905f525416175f516020613c415f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c215f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57610ff9612e34565b5f516020613c215f395f51905f52546001600160a01b0390911690601281019061104361102684846139c0565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff811615929150821561107b575b505061106c57906110689161397b565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a08291826110944261394c565b955460601c1690613019565b169116105f80611058565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c6110fe612e34565b611107816134b5565b60155f516020613c215f395f51905f5254016135ef565b50346101ff57806003193601126101ff575f516020613be15f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff5761116d612e34565b5f516020613c215f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115605760405281600401356001600160401b03811161155c5782013660238201121561155c57600481013561122c81612f15565b9161123a6040519384612e8e565b818352602060048185019360061b8301010190368211610f4b57602401915b8183106114fe57505050815261127c604460208301936024810135855201612e4a565b906040810191825261128c612ec4565b935f516020613c215f395f51905f525490600782019460018060a01b0386541633036114ef57845160068401546001600160a01b039182169116036114e057819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a1015611499578961130191613063565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113ba8b6113ac8b61139a6113498f6110269060018060a01b038a5116906139c0565b9a546040516001600160a01b03909c169b925090506113688683612e8e565b838252604051936113798786612e8e565b845260405197889687015260408601526080606086015260a0850190612f2c565b838103601f1901608085015290612f2c565b03601f198101835282612e8e565b85548751838d0180519096909290916001600160a01b039081169116823b1561149557908c8094939261141a6040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f2c565b03925af1801561148a57908991611475575b50509161146d91600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611468605483612e8e565b6132a0565b9801976112ec565b8161147f91612e8e565b610f4f57875f61142c565b6040513d8b823e3d90fd5b8c80fd5b886114d286848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611468605483612e8e565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f4b57604051604081018181106001600160401b038211176115485791602091604093845261153386612e4a565b81528286013583820152815201920191611259565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115c4612e34565b5f516020613c215f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116b95760068101546001600160a01b03928316921682036116aa57600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af1801561169f5761168a575b602083836040519083820192835260408201526040815261167f606082612e8e565b519020604051908152f35b611695848092612e8e565b6107f4578261165d565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e161366b565b5f516020613be15f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff57610845611790611787612eaf565b60243590613084565b604051918291602083526020830190612ed9565b50346101ff5760203660031901126101ff576117be612e34565b5f516020613c215f395f51905f5254600f0180549091906001600160a01b031633036118025781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff5761182a61366b565b5f516020613c415f395f51905f525460ff8160401c16908115611c39575b50611c2a575f516020613c415f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613be15f395f51905f525461189a906001600160a01b03166108ed613995565b5f516020613c215f395f51905f5254906040516118b8604082612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118eb61366b565b905190205f190181526020812060ff19165f516020613c215f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a28600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b42575b50506012808401939290820191815b8354811015611abc5780611ab5611aae6001938761369e565b90896136cd565b5001611a95565b506015808501929101815b8154811015611aee5780611ae7611ae06001938561369e565b90876136cd565b5001611ac7565b8260ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a86565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611848565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611ca65760206040515f516020613c015f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cca612e34565b90602435916001600160401b0383116107f857366023840112156107f85782600401356001600160401b038111611ecd5760405193611d13601f8301601f191660200186612e8e565b818552366024838301011161155c5781849260246020930183880137850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611eab575b50611e9c57611d7561366b565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596611e68575b50611dba57634c9c8ce360e01b84526004839052602484fd5b9091845f516020613c015f395f51905f528103611e565750823b15611e44575f516020613c015f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115611e2b5761106891613a17565b505034611e355780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611e94575b81611e8460209383612e8e565b81010312610f535751945f611da1565b3d9150611e77565b63703e46dd60e11b8252600482fd5b5f516020613c015f395f51905f52546001600160a01b0316141590505f611d68565b634e487b7160e01b83526041600452602483fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f52540133906135ef565b50346101ff5760203660031901126101ff5761022c611f94612e34565b611f9d816134b5565b60155f516020613c215f395f51905f525401613565565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa908115612109578391612123575b501561211457600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa9081156121095783916120da575b50156120cb576120b49065ffffffffffff6120a84261394c565b169060123391016136cd565b156120bc5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b6120fc915060203d602011612102575b6120f48183612e8e565b81019061304b565b5f61208e565b503d6120ea565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61213c915060203d602011612102576120f48183612e8e565b5f612046565b50346101ff5760203660031901126101ff5761215c612e34565b612165816134b5565b5f516020613c215f395f51905f52546001600160a01b0390911690601581019061219261102684846139c0565b5065ffffffffffff81161592915082156121c6575b50506121b757906110689161397b565b6347a11ef760e11b8352600483fd5b65ffffffffffff9192506121eb8291826121df4261394c565b955460901c1690613019565b169116105f806121a7565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c215f395f51905f5254600f8101546001600160a01b0316330361248f5781906020905b6004356004013583101561248b5760248360051b600435010135608219600435360301811215610f535760043501906122d56001600160a01b036122bf60248501612f7e565b165f908152601383016020526040902054151590565b1561247c57845b6122ec6064840160248501612f92565b905081101561246f5761230f816123096064860160248701612f92565b90612fc7565b6123396001600160a01b0361232383612f7e565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361235683612f7e565b166040519384809263b134427160e01b82525afa91821561169f578492612450575b5060048501549161238b60248801612f7e565b604488013565ffffffffffff81169003610f2857889586946124106040516123b38882612e8e565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f2c565b03926001600160a01b03165af191821561079357600192612433575b50016122dc565b61244990863d881161078c5761077d8183612e8e565b505f61242c565b612468919250873d89116107c4576107b68183612e8e565b905f612378565b5092600191500191612279565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b60576040366003190112612b60576124b8612e34565b6024356001600160a01b038116929190839003612b60576124d8816134b5565b5f516020613c215f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612cf2575f91612e15575b5015612e065760405163054fd4d560e41b8152602081600481875afa908115612cf2575f91612de7575b5060038201906001600160401b0380835416911603612dd85760405163d8dfeb4560e01b8152602081600481885afa908115612cf2575f91612db9575b5060068301546001600160a01b03908116911603612daa576040516327f843b560e11b8152602081600481885afa908115612cf2575f91612d8b575b5065ffffffffffff80845460301c169116908110612d7c5760405163142186b760e21b8152602081600481895afa908115612cf2575f91612d5d575b5015612d4e57604051630ce9b79360e41b8152602081600481895afa908115612cf2575f91612d2f575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612cf2575f91612cfd575b5019612ca0575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612c81575b506001600160a01b0316612c6f57604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c50575b5015612c415760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c22575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa91821561148a578992612bf6575b506001600160401b0380915460401c16911603612be757604051631a684c7560e11b8152602081600481875afa9081156107cb578891612bc8575b50612bb95760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612b8a575b5065ffffffffffff855460c01c1665ffffffffffff821610612b7b576127c165ffffffffffff918260018801541690613019565b1611612b6c5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b36575b50600284015410612b275754906020926128438460405161280c8282612e8e565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f2c565b0381865afa9081156107cb578891612b0a575b506001600160a01b031680612ae3575060110154604051926001600160a01b03909116906128848585612e8e565b8784523685850137813b15610f4b579186916128ca93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f2c565b03925af18015612a3457908591612ace575b50505b6040516313c085b760e11b81528181600481875afa908115612a34578591612ab1575b506001600160a01b031615612aa2575f516020613c215f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a6b578691612a85575b5015612a765760405163411557d160e01b815282816004818a5afa908115612a6b578691612a4e575b506001600160a01b031603612a3f5760405163054fd4d560e41b81528181600481895afa918215612a3457916001600160401b03916002938792612a07575b505016036129f85760156120b4939465ffffffffffff6129df4261394c565b1660609190911b6001600160601b0319161792016136cd565b63ded51c0b60e01b8352600483fd5b612a269250803d10612a2d575b612a1e8183612e8e565b810190613528565b5f806129c0565b503d612a14565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a659150833d85116107c4576107b68183612e8e565b5f612981565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612a9c9150833d8511612102576120f48183612e8e565b5f612958565b630c6b5ff760e31b8452600484fd5b612ac89150823d84116107c4576107b68183612e8e565b5f612902565b81612ad891612e8e565b61155c57835f6128dc565b6011909101546001600160a01b03161491506128df905057633cc6586560e21b8452600484fd5b612b219150853d87116107c4576107b68183612e8e565b5f612856565b633a2662c360e11b8652600486fd5b90506020813d602011612b64575b81612b5160209383612e8e565b81010312612b6057515f6127eb565b5f80fd5b3d9150612b44565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bac915060203d602011612bb2575b612ba48183612e8e565b810190613547565b5f61278d565b503d612b9a565b63447984b360e11b8752600487fd5b612be1915060203d602011612102576120f48183612e8e565b5f612764565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c1a829160203d602011612a2d57612a1e8183612e8e565b929150612729565b612c3b915060203d6020116107c4576107b68183612e8e565b5f6126f7565b631501f36360e21b8752600487fd5b612c69915060203d602011612102576120f48183612e8e565b5f6126cd565b60016221bb1360e11b03198752600487fd5b612c9a915060203d6020116107c4576107b68183612e8e565b5f61269b565b803b15612b60576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612cf257612cdc575b50612675565b612ce99198505f90612e8e565b5f966020612cd6565b6040513d5f823e3d90fd5b90506020813d602011612d27575b81612d1860209383612e8e565b81010312612b6057515f61266e565b3d9150612d0b565b612d48915060203d6020116107c4576107b68183612e8e565b5f612632565b636e549c1760e11b5f5260045ffd5b612d76915060203d602011612102576120f48183612e8e565b5f612608565b634934476760e01b5f5260045ffd5b612da4915060203d602011612bb257612ba48183612e8e565b5f6125cc565b63039a1fd760e21b5f5260045ffd5b612dd2915060203d6020116107c4576107b68183612e8e565b5f612590565b63bfcdc45f60e01b5f5260045ffd5b612e00915060203d602011612a2d57612a1e8183612e8e565b5f612553565b635b19e4bb60e01b5f5260045ffd5b612e2e915060203d602011612102576120f48183612e8e565b5f612529565b600435906001600160a01b0382168203612b6057565b35906001600160a01b0382168203612b6057565b61014081019081106001600160401b03821117612e7a57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e7a57604052565b6004359065ffffffffffff82168203612b6057565b6024359065ffffffffffff82168203612b6057565b90602080835192838152019201905f5b818110612ef65750505090565b82516001600160a01b0316845260209384019390920191600101612ee9565b6001600160401b038111612e7a5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b605790565b610204356001600160a01b0381168103612b605790565b356001600160a01b0381168103612b605790565b903590601e1981360301821215612b6057018035906001600160401b038211612b6057602001918160061b36038313612b6057565b9190811015612fd75760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b6057516001600160a01b0381168103612b605790565b90816020910312612b60575190565b9065ffffffffffff8091169116019065ffffffffffff821161303757565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b6057518015158103612b605790565b8051821015612fd75760209160051b010190565b9190820180921161303757565b91811561329157613094836132e0565b92815181811115613288575f5f198201828111925b8083106131af57505050506001945f19820190828211613037576130cd8287613063565b5183975b85518910156131a157816130e58a8a613063565b51036131015760018101809111613037576001909801976130d1565b9395975050909294505b6001821161311c575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613144602682612e8e565b51902090801561318d57613159910683613077565b5f19810190811161303757613184906001600160a01b039061317b9086613063565b51169184613063565b525f8080613114565b634e487b7160e01b5f52601260045260245ffd5b93959750509092945061310b565b9296958792959891945f935b613037578685035f190186811161303757841015613275576131dd8489613063565b51600185019485811161303757858c826001946131fb8f9a8f613063565b511161320c575b50505001936131bb565b61326c918d61323c8361321f8784613063565b519261322b8282613063565b516132368983613063565b52613063565b52858060a01b0361324d8583613063565b511693613236878060a01b036132638585613063565b51169183613063565b525f8c82613202565b94919895600191979894935001916130a9565b50509150915090565b6314f867c760e21b5f5260045ffd5b6132de906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612e8e565b565b906132ea826136ef565b60125f516020613c215f395f51905f52540180549261330884612f15565b916133166040519384612e8e565b848352601f1961332586612f15565b0136602085013761333585612f15565b946133436040519687612e8e565b808652601f1961335282612f15565b013660208801375f925f925b828410613372575050505080825283529190565b909192936133a76133ae84613387888661369e565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b5090613779565b156133f757836133d3916133c2848a613063565b6001600160a01b03821690526137d2565b6133dd828a613063565b526001810180911161303757600190945b0192919061335e565b50936001906133ee565b9061342d816133a761102660125f516020613c215f395f51905f52540160018060a01b038716906139c0565b1561343e5761343b916137d2565b90565b50505f90565b6001600160a01b031680156134a2575f516020613be15f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612cf2575f91613509575b50156134fa57565b630e7fea9d60e01b5f5260045ffd5b613522915060203d602011612102576120f48183612e8e565b5f6134f2565b90816020910312612b6057516001600160401b0381168103612b605790565b90816020910312612b60575165ffffffffffff81168103612b605790565b65ffffffffffff916135836110266001600160a01b038316846139c0565b91949094169384159081156135dd575b506135ce576135cb9365ffffffffffff60301b6135af4261394c565b60301b161760609190911b6001600160601b03191617916136cd565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f613593565b65ffffffffffff9161360d6110266001600160a01b038316846139c0565b949091161515908161365a575b5061364b576135cb9265ffffffffffff6136334261394c565b1660609190911b6001600160601b03191617916136cd565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f61361a565b5f516020613be15f395f51905f52546001600160a01b0316330361368b57565b63118cdaa760e01b5f523360045260245ffd5b91906136ac60029184613aa3565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b61343b929160018060a01b031691825f526002820160205260405f2055613b93565b5f516020613c215f395f51905f52549065ffffffffffff61370f4261394c565b1665ffffffffffff8216101561376257613746915465ffffffffffff808260601c169160901c168082105f14613771575090613019565b65ffffffffffff806137574261394c565b169116111561376257565b63686c69fd60e01b5f5260045ffd5b905090613019565b65ffffffffffff16801515929190836137bf575b508261379857505090565b65ffffffffffff16801592509082156137b057505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f61378d565b5f516020613c215f395f51905f52546015810180546004909201545f95948694602093869391905b86881061380b575050505050505050565b90919293949596986133a7613824866133878d8661369e565b1561394257604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612cf2576138c09189915f91613925575b506040519061386e8383612e8e565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f2c565b03916001600160a01b03165afa908115612cf2575f916138f7575b506138e890600192613077565b995b01969594939291906137fa565b90508781813d831161391e575b61390e8183612e8e565b81010312612b60575160016138db565b503d613904565b61393c9150823d84116107c4576107b68183612e8e565b5f61385f565b50986001906138ea565b65ffffffffffff81116139645765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061343b91815f52600281016020525f6040812055613ab8565b60ff5f516020613c415f395f51905f525460401c16156139b157565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f20549181831591826139f7575b50506139e5575090565b63015ab34360e11b5f5260045260245ffd5b613a0f92506001915f520160205260405f2054151590565b15815f6139db565b905f8091602081519101845af48080613a90575b15613a4b5750506040513d81523d5f602083013e60203d82010160405290565b15613a7057639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15613a81576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580613a2b5750813b1515613a2b565b8054821015612fd7575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b8b575f1981018181116130375782545f1981019190821161303757818103613b40575b50505080548015613b2c575f190190613b0d8282613aa3565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b76613b50613b609386613aa3565b90549060031b1c92839286613aa3565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613af4565b505050505f90565b5f82815260018201602052604090205461343e57805490600160401b821015612e7a5782613bcb613b60846001809601855584613aa3565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21773:159:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;7795:17;;2376:21773;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;2378:1:52;2376:21773:159;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;2376:21773:159;;;;;;;;;;;;;;;9049:10;9020:20;-1:-1:-1;;;;;;;;;;;2376:21773:159;9020:20;9049:10;;;:::i;2376:21773::-;;;;;;;-1:-1:-1;;2376:21773:159;;;;;13755:372;2376:21773;;:::i;:::-;;;:::i;:::-;22891:2;;;;:::i;:::-;13755:372;:::i;:::-;2376:21773;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;7482:21;;2376:21773;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7368:30:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;7368:30;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;7587:21;2376:21773;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7242:34:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;7242:34;2376:21773;;;;;;;;;;;;;;;;;;;;;;7693:22;-1:-1:-1;;;;;;;;;;;2376:21773:159;7693:22;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;:::i;:::-;;;;;;7927:20;;;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;16169:38;;2376:21773;-1:-1:-1;;;;;2376:21773:159;16155:10;:52;16151:108;;2376:21773;;;;16274:9;16285:18;;;;;;2376:21773;;;16305:3;16357:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;8847:28:49;;16387:17:159;;-1:-1:-1;;;;;16414:11:159;2376:21773;16414:11;:::i;:::-;2376:21773;8847:28:49;5238:14;5142:129;-1:-1:-1;2376:21773:159;5238:14:49;2376:21773:159;;;-1:-1:-1;2376:21773:159;;5238:26:49;;5142:129;;8847:28;16386:40:159;16382:106;;2376:21773;;-1:-1:-1;;;;;16522:11:159;;;:::i;:::-;2376:21773;;;;;;;;;;16515:29;;;;;;;;;2376:21773;16515:29;;;;;;;16305:3;2376:21773;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16502:83;;16559:11;2376:21773;;16502:83;;2376:21773;;;;;;;;;;;:::i;:::-;16502:83;;-1:-1:-1;;;;;2376:21773:159;16502:83;;;;;;;2376:21773;16502:83;;;16305:3;;2376:21773;16274:9;;16502:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21773;;;;;;;;;16515:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21773;;;;;;;;;16382:106;-1:-1:-1;;;16453:20:159;;2376:21773;15776:20;16453;16151:108;-1:-1:-1;;;16230:18:159;;2376:21773;8423:18;16230;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;4301:16:18;2376:21773:159;;4724:16:18;;:34;;;;2376:21773:159;4803:1:18;4788:16;:50;;;;2376:21773:159;4853:13:18;:30;;;;2376:21773:159;4849:91:18;;;2376:21773:159;4803:1:18;-1:-1:-1;;;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;4977:67:18;;2376:21773:159;;;-1:-1:-1;;;;;2376:21773:159;;;;;;6959:1:18;;6891:76;;:::i;:::-;;;:::i;6959:1::-;2376:21773:159;;;;;;;;:::i;:::-;;;;;;;;;;2324:62:52;;:::i;:::-;1794:178:36;;;;-1:-1:-1;;1794:178:36;;;2376:21773:159;1794:178:36;;-1:-1:-1;;1794:178:36;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;3392:19;2376:21773;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;3447:29;2376:21773;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3510:27;2376:21773;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3568:24;2376:21773;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3622:23;2376:21773;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3682:30;2376:21773;;;;;;;;;4803:1:18;3655:24:159;;2376:21773;;;;;;;;;;3722:27;;;2376:21773;3752:33;2376:21773;;;3823:31;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;-1:-1:-1;;;;;3795:25:159;;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;;;;;;;3888:27;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3963:18;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;3948:12;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;4014:4;3510:27;2376:21773;;3991:12;;2376:21773;4076:19;2376:21773;4060:13;;;2376:21773;4117:14;2376:21773;;;;;;;;4106:8;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;4156:17;2376:21773;;;;;;;;4142:11;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;3022:1;;:::i;:::-;;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;3022:1;;:::i;:::-;;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;4201:33;;:::i;:::-;2376:21773;4184:69;;;;;2376:21773;;;;;;;;;;;;;4184:69;;;;;;;;;;2376:21773;-1:-1:-1;;;;;;4289:35:159;;:::i;:::-;2376:21773;4263:91;;;;;2376:21773;;;3392:19;2376:21773;;;;;;;;;4263:91;;4014:4;2376:21773;4263:91;;2376:21773;4263:91;;;;;;;;2376:21773;;;;;;;;17659:17;2376:21773;;;;;;;;;4803:1:18;2376:21773:159;;;;;;;;;;;18048:44;;2376:21773;;;;;3510:27;2376:21773;;18323:48;2376:21773;;;;;;;;18611:45;2376:21773;;3682:30;2376:21773;;;;18786:21;;2376:21773;;;;;;19058:28;;2376:21773;;;19165:44;;;;:::i;:::-;2376:21773;19165:71;2376:21773;;3795:25;2376:21773;;19507:32;2376:21773;;5064:101:18;;2376:21773:159;;;5064:101:18;2376:21773:159;5140:14:18;2376:21773:159;-1:-1:-1;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;4803:1:18;2376:21773:159;;5140:14:18;2376:21773:159;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;3022:1;2376:21773;;3392:19;2376:21773;;;-1:-1:-1;;;2376:21773:159;;;;;4263:91;;;;;:::i;:::-;2376:21773;;4263:91;;;;2376:21773;;;;4263:91;2376:21773;;;;;;;;;4184:69;;;;;:::i;:::-;2376:21773;;4184:69;;;;2376:21773;;;;;;;;;;;;4977:67:18;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;4977:67:18;;4849:91;-1:-1:-1;;;4906:23:18;;2376:21773:159;6496:23:18;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;2376:21773:159;;;;;;;;;;;;;;7110:36;-1:-1:-1;;;;;;;;;;;2376:21773:159;7110:36;2376:21773;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;9302:11;;;;3545:23:169;24034:47:48;2376:21773:159;9302:11;24034:47:48;:::i;:::-;2376:21773:159;;;;;;1267:2:169;2376:21773:159;;;1289:2:169;2376:21773:159;981:319:169;;3545:23;-1:-1:-1;2376:21773:159;;;9347:17;;2376:21773;-1:-1:-1;9347:76:159;;;;2376:21773;9343:144;;;;21866:50:48;;;;:::i;:::-;;2376:21773:159;;9343:144;-1:-1:-1;;;9446:30:159;;2376:21773;9446:30;;9347:76;2376:21773;837:15:50;;;9387:36:159;837:15:50;;;819:34;837:15;819:34;:::i;:::-;2376:21773:159;;;;;9387:36;;:::i;:::-;2376:21773;;;9368:55;9347:76;;;;2376:21773;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;11727:5;2376:21773;;:::i;:::-;23936:5;;;:::i;:::-;11702:17;-1:-1:-1;;;;;;;;;;;2376:21773:159;11702:17;11727:5;:::i;2376:21773::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;8371:29;;2376:21773;;8371:29;;2376:21773;-1:-1:-1;;;;;2376:21773:159;8357:10;:43;8353:99;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2376:21773:159;10254:8;;;;2376:21773;;;;;;;;;10240:10;:22;10236:71;;2376:21773;;;10342:12;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;10321:33;10317:90;;10417:30;;;;;;2376:21773;10462:13;;10616:8;2376:21773;10852:13;10616:8;;;10852:13;;2376:21773;;;;10457:677;10514:3;10481:24;;2376:21773;;10477:35;;;;;10569:27;;;;:::i;:::-;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;-1:-1:-1;2376:21773:159;;;;5238:14:49;;2376:21773:159;;;;;;5238:26:49;10611:99:159;;2376:21773;;;;10830:58;2376:21773;;;;3750:23:169;2376:21773:159;24034:47:48;2376:21773:159;;;;;;;;;24034:47:48;;:::i;3750:23:169:-;2376:21773:159;;;;-1:-1:-1;;;;;2376:21773:159;;;;;-1:-1:-1;2376:21773:159;-1:-1:-1;2376:21773:159;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10830:58;;;;;2376:21773;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;;;;;:::i;:::-;10830:58;2376:21773;;10830:58;;;;;;:::i;:::-;2376:21773;;;;10987:14;;;2376:21773;;10987:14;;2376:21773;;10987:14;;-1:-1:-1;;;;;2376:21773:159;;;;;10902:106;;;;;2376:21773;;;;;;;;;;;;;;;;;;;10902:106;;2376:21773;10902:106;;2376:21773;;;;;;;;;;;;;;;;;;;:::i;:::-;10902:106;;;;;;;;;;;;;10514:3;2376:21773;;;11043:80;2376:21773;;;;;;;;;;;;;;;11075:47;;;2376:21773;;;;;;11075:47;;;;;;:::i;:::-;11043:80;:::i;:::-;10514:3;2376:21773;10462:13;;;10902:106;;;;;:::i;:::-;2376:21773;;10902:106;;;;;2376:21773;;;;;;;;;10902:106;2376:21773;;;10477:35;;11161:93;10477:35;;;2376:21773;;;;;11193:60;;;;2376:21773;;;;;;;;;;;;11193:60;;;11075:47;11193:60;;:::i;11161:93::-;2376:21773;;;;;11151:104;2376:21773;;;;;;10317:90;-1:-1:-1;;;10377:19:159;;2376:21773;20059:19;10377;10236:71;-1:-1:-1;;;10285:11:159;;2376:21773;9745:11;10285;2376:21773;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;9714:8;;;2376:21773;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;9700:10;:22;;;9696:71;;9790:12;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;9781:21;;9777:78;;9889:27;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;9865:101;;;;;;2376:21773;;;;;;;;;;;;9865:101;;2376:21773;9865:101;;2376:21773;;;;;;;;;;;;;;;9865:101;;;;;;;;2376:21773;;;;;;9994:30;;;;2376:21773;;;;;;;;9994:30;;;2376:21773;9994:30;;:::i;:::-;2376:21773;9984:41;;2376:21773;;;;;;9865:101;;;;;;:::i;:::-;2376:21773;;9865:101;;;;2376:21773;;;;;;;;;9777:78;-1:-1:-1;;;9825:19:159;;2376:21773;20059:19;9825;9696:71;-1:-1:-1;;;9745:11:159;;2376:21773;9745:11;;2376:21773;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;2376:21773:159;;;;;;;-1:-1:-1;;;;;2376:21773:159;3996:40:52;2376:21773:159;;3996:40:52;2376:21773:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;8103:30;;2376:21773;;8103:30;;2376:21773;-1:-1:-1;;;;;2376:21773:159;8089:10;:44;8085:101;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;8085:101;-1:-1:-1;;;8156:19:159;;2376:21773;15296:19;8156;2376:21773;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;6429:44:18;;;;;2376:21773:159;6425:105:18;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;2376:21773:159;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;6959:1:18;;-1:-1:-1;;;;;2376:21773:159;6891:76:18;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;:::i;:::-;;;;;;;;;;2324:62:52;;:::i;:::-;1794:178:36;;;;-1:-1:-1;;1794:178:36;;;2376:21773:159;1794:178:36;;-1:-1:-1;;1794:178:36;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;-1:-1:-1;;;2376:21773:159;-1:-1:-1;;;;;;2376:21773:159;;;;;;;1794:178:36;2376:21773:159;;;;-1:-1:-1;;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;6591:4:18;5101:33:159;;2376:21773;;;6591:4:18;5065:33:159;;2376:21773;;;;;;;;;;4519:1;5183:36;;2376:21773;4519:1;5144:36;;2376:21773;5310:63;5266:34;;;-1:-1:-1;;;;;2376:21773:159;;;;5229:34;;5266;5229;;2376:21773;;;;;;;;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;5310:63;5407:21;;;;2376:21773;5383:21;;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;;;-1:-1:-1;;;;;;2376:21773:159;;;;;;;;5462:21;;;2376:21773;5438:21;;;2376:21773;5518:22;;;;2376:21773;5493:22;;;2376:21773;5570:17;;;;2376:21773;5550:17;;;2376:21773;;;;;;;;;;;5620:20;5597;;;;5620;;2376:21773;;;;;;-1:-1:-1;;5675:20:159;5796;;;;5656:13;5675:20;;;;5656:13;5706:3;2376:21773;;5671:33;;;;;5756:26;5796:36;5756:26;6591:4:18;5756:26:159;;;:::i;:::-;5796:36;;;:::i;:::-;;2376:21773;5656:13;;5671:33;-1:-1:-1;5877:17:159;5992;;;;5671:33;5877:17;5671:33;5905:3;2376:21773;;5873:30;;;;;5955:23;5992:33;5955:23;6591:4:18;5955:23:159;;;:::i;:::-;5992:33;;;:::i;:::-;;2376:21773;5858:13;;5873:30;;-1:-1:-1;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;;;;;;2376:21773:159;6654:20:18;2376:21773:159;;;4519:1;2376:21773;;6654:20:18;2376:21773:159;;;;;;-1:-1:-1;;;;;;2376:21773:159;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;6425:105:18;-1:-1:-1;;;6496:23:18;;2376:21773:159;;6496:23:18;6429:44;4519:1:159;2376:21773;;-1:-1:-1;;;;;2376:21773:159;6448:25:18;;6429:44;;;2376:21773:159;;;;;;;;;;;;;4840:6:19;-1:-1:-1;;;;;2376:21773:159;4831:4:19;4823:23;4819:145;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;4819:145:19;-1:-1:-1;;;4924:29:19;;2376:21773:159;;4924:29:19;2376:21773:159;-1:-1:-1;2376:21773:159;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4417:6:19;2376:21773:159;4408:4:19;4400:23;;;:120;;;;2376:21773:159;4383:251:19;;;2324:62:52;;:::i;:::-;2376:21773:159;;-1:-1:-1;;;5881:52:19;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;5881:52:19;;;;;;;;2376:21773:159;-1:-1:-1;5877:437:19;;-1:-1:-1;;;6243:60:19;;2376:21773:159;;;;;1805:47:11;6243:60:19;5877:437;5975:40;;;-1:-1:-1;;;;;;;;;;;5975:40:19;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;2376:21773:159;;;;;2407:36:11;;;;2376:21773:159;;2458:15:11;:11;;2489:53;;;:::i;2454:148::-;6185:9;;;6181:70;;2376:21773:159;;6181:70:11;-1:-1:-1;;;6221:19:11;;2376:21773:159;;6221:19:11;1744:119;-1:-1:-1;;;1805:47:11;;2376:21773:159;;;1805:47:11;;5971:120:19;-1:-1:-1;;;6042:34:19;;2376:21773:159;;;6042:34:19;;5881:52;;;;2376:21773:159;5881:52:19;;2376:21773:159;5881:52:19;;;;;;2376:21773:159;5881:52:19;;;:::i;:::-;;;2376:21773:159;;;;;5881:52:19;;;;;;;-1:-1:-1;5881:52:19;;4383:251;-1:-1:-1;;;4594:29:19;;2376:21773:159;4594:29:19;;4400:120;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;4478:42:19;;;-1:-1:-1;4400:120:19;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;9146:10;9118:20;-1:-1:-1;;;;;;;;;;;2376:21773:159;9118:20;9146:10;;;:::i;2376:21773::-;;;;;;;-1:-1:-1;;2376:21773:159;;;;11610:5;2376:21773;;:::i;:::-;23936:5;;;:::i;:::-;11584:17;-1:-1:-1;;;;;;;;;;;2376:21773:159;11584:17;11610:5;:::i;2376:21773::-;;;;;;;;;;;;;;;6978:33;-1:-1:-1;;;;;;;;;;;2376:21773:159;6978:33;2376:21773;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;8666:28;;;2376:21773;;;-1:-1:-1;;;8656:60:159;;8705:10;2376:21773;8656:60;;2376:21773;;;;;;8656:60;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;8656:60;;;;;;;;;;;2376:21773;8655:61;;8651:121;;8800:24;;;2376:21773;;;-1:-1:-1;;;8786:76:159;;8705:10;2376:21773;8786:76;;2376:21773;8856:4;8656:60;2376:21773;;;;;;;;8786:76;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;8786:76;;;;;;;;;;;2376:21773;8785:77;;8781:137;;2206:50:169;837:15:50;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;8705:10;8928:11;8705:10;8928:11;;2206:50:169;:::i;:::-;2205:51;2201:103;;2376:21773:159;;2201:103:169;-1:-1:-1;;;2279:14:169;;2376:21773:159;;2279:14:169;8781:137:159;-1:-1:-1;;;8885:22:159;;2376:21773;8885:22;;8786:76;;;;2376:21773;8786:76;2376:21773;8786:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21773;;;;;;;;;8651:121;-1:-1:-1;;;8739:22:159;;2376:21773;8739:22;;8656:60;;;;2376:21773;8656:60;2376:21773;8656:60;;;;;;;:::i;:::-;;;;2376:21773;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;23936:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;11889:8;;;;3545:23:169;24034:47:48;2376:21773:159;11889:8;24034:47:48;:::i;3545:23:169:-;-1:-1:-1;2376:21773:159;;;11928:17;;2376:21773;-1:-1:-1;11928:73:159;;;;2376:21773;11924:138;;;;21866:50:48;;;;:::i;11924:138:159:-;-1:-1:-1;;;12024:27:159;;2376:21773;12024:27;;11928:73;2376:21773;837:15:50;;;11968:33:159;837:15:50;;;819:34;837:15;819:34;:::i;:::-;2376:21773:159;;;;;11968:33;;:::i;:::-;2376:21773;;;11949:52;11928:73;;;;2376:21773;;;;;;;-1:-1:-1;;2376:21773:159;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;15243:30;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;15229:10;:44;15225:101;;15341:9;2376:21773;;15336:726;15369:3;2376:21773;;;;;15352:15;;;;;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;8847:28:49;-1:-1:-1;;;;;15466:18:159;2376:21773;;;15466:18;:::i;:::-;2376:21773;-1:-1:-1;2376:21773:159;;;5238:14:49;;;2376:21773:159;;;;;;5238:26:49;;;5142:129;8847:28;15444:41:159;15440:110;;15569:9;15609:3;15584:16;;;;2376:21773;;;15584:16;:::i;:::-;15580:27;;;;;;;15668:19;15584:16;15668;15584;;;2376:21773;;;15668:16;:::i;:::-;:19;;:::i;:::-;8847:28:49;-1:-1:-1;;;;;15729:15:159;;;:::i;:::-;2376:21773;-1:-1:-1;2376:21773:159;;;5238:14:49;;;2376:21773:159;;;;;;5238:26:49;;;5142:129;8847:28;15710:35:159;15706:109;;2376:21773;;;;;;-1:-1:-1;;;;;15858:15:159;2376:21773;15858:15;:::i;:::-;2376:21773;;;;;;;;;;15851:33;;;;;;;;;;;;;15609:3;15958:12;2376:21773;15958:12;;2376:21773;;15972:18;2376:21773;;;15972:18;:::i;:::-;16010:12;;;2376:21773;;;;;;;;16010:12;;;;2376:21773;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;;;;;;;;;;;;;;;;;15902:135;;2376:21773;15902:135;;2376:21773;;;;;;;;;;;15992:16;2376:21773;;;;;;16010:12;;;2376:21773;;;;;;;;;;;;;;;;:::i;:::-;15902:135;;-1:-1:-1;;;;;2376:21773:159;15902:135;;;;;;;2376:21773;15902:135;;;15609:3;;2376:21773;15569:9;;15902:135;;;;;;;;;;;;;:::i;:::-;;;;;15851:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15580:27;;;2376:21773;15580:27;;2376:21773;15341:9;;;15440:110;-1:-1:-1;;;15512:23:159;;2376:21773;15512:23;;15352:15;;2376:21773;;15225:101;-1:-1:-1;;;15296:19:159;;2376:21773;15296:19;;2376:21773;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;23936:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;19747:11;;;2376:21773;;;-1:-1:-1;;;19737:53:159;;-1:-1:-1;;;;;2376:21773:159;;;;19737:53;;2376:21773;;;;;;;;;;;;;;;19737:53;;;;;;;2376:21773;19737:53;;;2376:21773;19736:54;;19732:109;;2376:21773;;-1:-1:-1;;;19855:35:159;;2376:21773;;;;19855:35;;;;;;;;2376:21773;19855:35;;;2376:21773;19894:25;;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;19855:64;19851:128;;2376:21773;;-1:-1:-1;;;19993:27:159;;2376:21773;;;;19993:27;;;;;;;;2376:21773;19993:27;;;2376:21773;-1:-1:-1;20024:12:159;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;19993:43;19989:100;;2376:21773;;-1:-1:-1;;;20155:30:159;;2376:21773;;;;20155:30;;;;;;;;2376:21773;20155:30;;;2376:21773;;;;;;;;;;;20199:44;;;20195:107;;2376:21773;;-1:-1:-1;;;20350:39:159;;2376:21773;;;;20350:39;;;;;;;;2376:21773;20350:39;;;2376:21773;20349:40;;20345:103;;2376:21773;;-1:-1:-1;;;20500:26:159;;2376:21773;;;;20500:26;;;;;;;;2376:21773;20500:26;;;2376:21773;-1:-1:-1;2376:21773:159;20567:12;;;2376:21773;;;;-1:-1:-1;;;20541:39:159;;;;;2376:21773;20567:12;;-1:-1:-1;;;;;2376:21773:159;;;;;;;20541:39;;;;;;;2376:21773;20541:39;;;2376:21773;-1:-1:-1;20541:60:159;20537:158;;2376:21773;;;;;;;;;;;;;20724:32;;;;;;;;;;;;;2376:21773;-1:-1:-1;;;;;;2376:21773:159;17489:82;;2376:21773;;-1:-1:-1;;;20804:37:159;;2376:21773;;;;20804:37;;;;;;;;;;;;2376:21773;20803:38;;20799:99;;2376:21773;;-1:-1:-1;;;20926:24:159;;2376:21773;;;;20926:24;;;;;;;;;;;;2376:21773;-1:-1:-1;2376:21773:159;;-1:-1:-1;;;20964:23:159;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;20964:23;;;;;;;;;;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;20964:48;20960:111;;2376:21773;;-1:-1:-1;;;21085:36:159;;2376:21773;;;;21085:36;;;;;;;;;;;;2376:21773;21081:98;;;2376:21773;;-1:-1:-1;;;21211:36:159;;2376:21773;;;;21211:36;;;;;;;;;;;;2376:21773;;;;;;;;;;;21261:32;21257:92;;21363:39;2376:21773;21378:24;;;;;2376:21773;;21363:39;;:::i;:::-;2376:21773;21363:60;21359:119;;2376:21773;;-1:-1:-1;;;21492:46:159;;2376:21773;;;;21492:46;;;;;;;;;;;;2376:21773;21541:27;;;;2376:21773;-1:-1:-1;21488:139:159;;2376:21773;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;;;;;;;;;;;;;;;;;21656:58;;2376:21773;21656:58;;2376:21773;;;;;;;;;;;:::i;:::-;21656:58;;;;;;;;;;;;;;2376:21773;-1:-1:-1;;;;;;2376:21773:159;21728:22;;;-1:-1:-1;21820:24:159;;2376:21773;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;:::i;:::-;;;;;;;;;21766:93;;;;;2376:21773;;;;;;;;;;;;;;;;;21766:93;;;2376:21773;21766:93;;2376:21773;;;;;;;;;;;;;;;:::i;:::-;21766:93;;;;;;;;;;;;;21724:299;;;;2376:21773;;-1:-1:-1;;;22109:23:159;;;2376:21773;;;22109:23;;;;;;;;;;;;21724:299;-1:-1:-1;;;;;;2376:21773:159;22109:37;22105:94;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;22315:41;;;2376:21773;;;;;;;;;;;22305:71;;;2376:21773;22305:71;;2376:21773;22305:71;;;;;;;;;;;21724:299;22304:72;;22300:135;;2376:21773;;-1:-1:-1;;;22449:39:159;;;2376:21773;;;22449:39;;;;;;;;;;;;21724:299;-1:-1:-1;;;;;;2376:21773:159;22449:49;22445:114;;2376:21773;;-1:-1:-1;;;22573:41:159;;;2376:21773;;;22573:41;;;;;;;;;-1:-1:-1;;;;;22573:41:159;21541:27;22573:41;;;;;21724:299;2376:21773;;;22573:46;22569:118;;11446:17;2206:50:169;837:15:50;;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;1780:2:169;2376:21773:159;;;;-1:-1:-1;;;;;;2376:21773:159;1707:76:169;;11446:17:159;2206:50:169;:::i;22569:118:159:-;-1:-1:-1;;;22642:34:159;;2376:21773;22642:34;;22573:41;;;;;;-1:-1:-1;22573:41:159;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21773;;;;;;;;;22445:114;-1:-1:-1;;;22521:27:159;;2376:21773;22521:27;;22449:39;;;;;;;;;;;;;;:::i;:::-;;;;;2376:21773;;;;;;;;;22300:135;-1:-1:-1;;;22399:25:159;;2376:21773;22399:25;;22305:71;;;;;;;;;;;;;;:::i;:::-;;;;22105:94;-1:-1:-1;;;22169:19:159;;2376:21773;22169:19;;22109:23;;;;;;;;;;;;;;:::i;:::-;;;;21766:93;;;;;:::i;:::-;2376:21773;;21766:93;;;;21724:299;21892:24;;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;21880:36;;-1:-1:-1;21724:299:159;;-1:-1:-1;21876:147:159;-1:-1:-1;;;21994:18:159;;2376:21773;21994:18;;21656:58;;;;;;;;;;;;;;:::i;:::-;;;;21488:139;-1:-1:-1;;;21591:25:159;;2376:21773;21591:25;;21492:46;;;2376:21773;21492:46;;2376:21773;21492:46;;;;;;2376:21773;21492:46;;;:::i;:::-;;;2376:21773;;;;;21492:46;;;2376:21773;-1:-1:-1;2376:21773:159;;21492:46;;;-1:-1:-1;21492:46:159;;21359:119;-1:-1:-1;;;21446:21:159;;2376:21773;21446:21;;21257:92;-1:-1:-1;;;21316:22:159;;2376:21773;21316:22;;21211:36;;;;2376:21773;21211:36;2376:21773;21211:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21081:98;-1:-1:-1;;;21144:24:159;;2376:21773;21144:24;;21085:36;;;;2376:21773;21085:36;2376:21773;21085:36;;;;;;;:::i;:::-;;;;20960:111;-1:-1:-1;;;21035:25:159;;2376:21773;21035:25;;20964:23;-1:-1:-1;;;;;20964:23:159;;;;;;2376:21773;20964:23;2376:21773;20964:23;;;;;;;:::i;:::-;;;;;;20926:24;;;;2376:21773;20926:24;2376:21773;20926:24;;;;;;;:::i;:::-;;;;20799:99;-1:-1:-1;;;20864:23:159;;2376:21773;20864:23;;20804:37;;;;2376:21773;20804:37;2376:21773;20804:37;;;;;;;:::i;:::-;;;;17489:82;-1:-1:-1;;;;;;17534:26:159;;2376:21773;17534:26;;20724:32;;;;2376:21773;20724:32;2376:21773;20724:32;;;;;;;:::i;:::-;;;;20537:158;20617:67;;;;;2376:21773;;-1:-1:-1;;;20617:67:159;;2376:21773;;20617:67;;2376:21773;;;-1:-1:-1;;2376:21773:159;;;;;20617:67;2376:21773;;20617:67;;;;;;;;;20537:158;;;;20617:67;;;;;2376:21773;20617:67;;:::i;:::-;2376:21773;;;20617:67;;;2376:21773;;;;;;;;;20541:39;;;2376:21773;20541:39;;2376:21773;20541:39;;;;;;2376:21773;20541:39;;;:::i;:::-;;;2376:21773;;;;;20541:39;;;;;;-1:-1:-1;20541:39:159;;20500:26;;;;2376:21773;20500:26;2376:21773;20500:26;;;;;;;:::i;:::-;;;;20345:103;20412:25;;;2376:21773;20412:25;2376:21773;;20412:25;20350:39;;;;2376:21773;20350:39;2376:21773;20350:39;;;;;;;:::i;:::-;;;;20195:107;20266:25;;;2376:21773;20266:25;2376:21773;;20266:25;20155:30;;;;2376:21773;20155:30;2376:21773;20155:30;;;;;;;:::i;:::-;;;;19989:100;20059:19;;;2376:21773;20059:19;2376:21773;;20059:19;19993:27;;;;2376:21773;19993:27;2376:21773;19993:27;;;;;;;:::i;:::-;;;;19851:128;19942:26;;;2376:21773;19942:26;2376:21773;;19942:26;19855:35;;;;2376:21773;19855:35;2376:21773;19855:35;;;;;;;:::i;:::-;;;;19732:109;19813:17;;;2376:21773;19813:17;2376:21773;;19813:17;19737:53;;;;2376:21773;19737:53;2376:21773;19737:53;;;;;;;:::i;:::-;;;;2376:21773;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21773:159;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;-1:-1:-1;2376:21773:159;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;-1:-1:-1;;2376:21773:159;;;;:::o;:::-;3022:1;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;3022:1;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12107:1642::-;;12224:17;;2376:21773;;12353:29;;;:::i;:::-;2376:21773;;;12397:39;;;;12393:92;;12240:1;20584:17;;2376:21773;;;;;12573:368;12593:5;;;;;;13008:26;;;;12647:1;20584:17;;;2376:21773;;;;;;;;13064:25;;;;:::i;:::-;2376:21773;13104:25;13099:188;13159:3;2376:21773;;13131:26;;;;;13182:9;;;;;:::i;:::-;2376:21773;13182:22;13178:66;;12647:1;2376:21773;;;;;;;12647:1;13257:19;13159:3;2376:21773;13104:25;;;13178:66;13224:5;;;;;;;;;13099:188;12647:1;13301:18;;13297:316;;13099:188;13623:87;;;;;12107:1642;:::o;13297:316::-;2376:21773;;13464:20;;;2376:21773;;;;;;;;;;13464:20;;;;;;;:::i;:::-;2376:21773;13454:31;;2376:21773;;;;;13570:27;2376:21773;;13570:27;;:::i;:::-;-1:-1:-1;;2376:21773:159;;;;;;;13517:85;;-1:-1:-1;;;;;2376:21773:159;13554:48;;;;:::i;:::-;2376:21773;;;13517:85;;:::i;:::-;2376:21773;13297:316;;;;;2376:21773;;;;12240:1;2376:21773;;;;;12240:1;2376:21773;13131:26;;;;;;;;;;;;12600:3;12624:13;;;;;;;;;12240:1;12619:312;12654:3;2376:21773;;;;;-1:-1:-1;;2376:21773:159;;;;;;12639:13;;;;;12681:9;;;;:::i;:::-;2376:21773;12647:1;2376:21773;;;;;;;;12693:13;;;12647:1;12693:13;;;;;;:::i;:::-;2376:21773;-1:-1:-1;12677:240:159;;12654:3;;;;2376:21773;12624:13;;;12677:240;12807:91;2376:21773;12760:13;12730:55;12760:13;;;;;:::i;:::-;2376:21773;12775:9;;;;;:::i;:::-;2376:21773;12730:55;;;;:::i;:::-;2376:21773;12730:55;:::i;:::-;2376:21773;;;;;;12855:22;;;;:::i;:::-;2376:21773;;;12807:91;2376:21773;;;;;12879:18;;;;:::i;:::-;2376:21773;;;12807:91;;:::i;:::-;2376:21773;12677:240;;;;;12639:13;;;;;12647:1;12639:13;;;;;;2376:21773;12578:13;;;12393:92;12452:22;;;;;;;:::o;2376:21773::-;;;;12240:1;2376:21773;;12240:1;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;:::i;:::-;:::o;14170:940::-;;22891:2;;;:::i;:::-;14433:11;-1:-1:-1;;;;;;;;;;;2376:21773:159;14433:11;2376:21773;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;:::i;:::-;;;;;;;-1:-1:-1;14558:9:159;-1:-1:-1;14553:416:159;14569:24;;;;;;14979:125;;;;;;;;;14322:23;14170:940;:::o;14595:3::-;3255:12:169;;;;3308:14;14714:35:159;3255:12:169;;;;;:::i;:::-;3308:14;;;2376:21773:159;;;;;;1267:2:169;2376:21773:159;;;1289:2:169;2376:21773:159;981:319:169;;3308:14;14714:35:159;;;:::i;:::-;14713:36;14709:83;;14806:39;14881:47;14806:39;;;;;:::i;:::-;-1:-1:-1;;;;;2376:21773:159;;;;14881:47;:::i;:::-;14859:69;;;;:::i;:::-;2376:21773;14957:1;2376:21773;;;;;;;14957:1;14942:16;14595:3;14558:9;2376:21773;14558:9;;;;;14709:83;14769:8;;14957:1;14769:8;;;13755:372;;13977:43;2376:21773;3545:23:169;24034:47:48;13923:20:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;13923:20;2376:21773;;;;;;;24034:47:48;;:::i;13977:43:159:-;13976:44;13972:83;;14073:47;;;:::i;:::-;13755:372;:::o;13972:83::-;14036:8;;-1:-1:-1;14036:8:159;:::o;3426:215:52:-;-1:-1:-1;;;;;2376:21773:159;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;2376:21773:159;;;;;;;-1:-1:-1;;;;;2376:21773:159;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;2376:21773:159;;3530:1:52;3555:31;23966:181:159;2376:21773;;-1:-1:-1;;;24031:61:159;;2968:4;24031:61;;;2376:21773;24081:10;2968:4;;;2376:21773;;2968:4;;2376:21773;;24031:61;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;24031:61;;;;;;;2968:4;24031:61;;;23966:181;24030:62;;24026:115;;23966:181::o;24026:115::-;24115:15;;;2968:4;24115:15;24031:61;2968:4;24115:15;24031:61;;;;2968:4;24031:61;2968:4;24031:61;;;;;;;:::i;:::-;;;;2376:21773;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;2666:351:169:-;2376:21773:159;;2819:23:169;24034:47:48;-1:-1:-1;;;;;2376:21773:159;;24034:47:48;;:::i;2819:23:169:-;2376:21773:159;;;;;2857:16:169;;;:37;;;;;2666:351;2853:87;;;2950:60;837:15:50;-1:-1:-1;;;819:34:50;837:15;819:34;:::i;:::-;1756:2:169;2376:21773:159;;1707:52:169;1780:2;2376:21773:159;;;;-1:-1:-1;;;;;;2376:21773:159;1707:76:169;;2950:60;:::i;:::-;;2666:351::o;2853:87::-;2917:12;;;-1:-1:-1;2917:12:169;;-1:-1:-1;2917:12:169;2857:37;2376:21773:159;;;;2877:17:169;;2857:37;;;2316:344;2376:21773:159;;2468:23:169;24034:47:48;-1:-1:-1;;;;;2376:21773:159;;24034:47:48;;:::i;2468:23:169:-;2376:21773:159;;;;2506:16:169;;:37;;;;2316:344;2502:91;;;2603:50;837:15:50;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;1780:2:169;2376:21773:159;;;;-1:-1:-1;;;;;;2376:21773:159;1707:76:169;;2603:50;:::i;2502:91::-;2566:16;;;-1:-1:-1;2566:16:169;;-1:-1:-1;2566:16:169;2506:37;2376:21773:159;;;;2526:17:169;2506:37;;;2679:162:52;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;2376:21773:159;;-1:-1:-1;2784:40:52;23141:242:48;;;5894:18:49;5065:11:48;23141:242;5894:18:49;;:::i;:::-;2376:21773:159;;;;;;;;-1:-1:-1;2376:21773:159;5065:11:48;2376:21773:159;;;-1:-1:-1;2376:21773:159;;;;;;;;;23321:55:48;23141:242;:::o;21425:182::-;7939:23:49;21425:182:48;;2376:21773:159;;;;;;;;-1:-1:-1;2376:21773:159;3157:11:48;;;2376:21773:159;;;-1:-1:-1;2376:21773:159;;7939:23:49;:::i;22918:408:159:-;-1:-1:-1;;;;;;;;;;;2376:21773:159;837:15:50;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;;;;23022:22;;23018:80;;23230:16;2376:21773;;;;;;;;;;;;23129:42;;;:87;:42;;;:87;;23230:16;:::i;:::-;2376:21773;837:15:50;819:34;837:15;819:34;:::i;:::-;2376:21773:159;;;23230:36;;23226:94;;22918:408::o;23226:94::-;23067:20;;;-1:-1:-1;23289:20:159;;-1:-1:-1;23289:20:159;23129:87;;;;23230:16;:::i;17170:208::-;2376:21773;;17289:16;;;;17170:208;;17289:16;:37;;17170:208;17289:82;;;;17282:89;;17170:208;:::o;17289:82::-;2376:21773;;17331:17;;;-1:-1:-1;2376:21773:159;17331:39;;;;17289:82;;17170:208;:::o;17331:39::-;2376:21773;;-1:-1:-1;17352:18:159;;-1:-1:-1;17170:208:159;:::o;17289:37::-;2376:21773;;;-1:-1:-1;17309:17:159;;-1:-1:-1;17289:37:159;;;16608:556;-1:-1:-1;;;;;;;;;;;2376:21773:159;16787:8;;;2376:21773;;17071:25;17106:12;;;2376:21773;;;16608:556;2376:21773;;;;;;;16608:556;16783:21;;;;;;16608:556;;;;;;;;:::o;16806:3::-;3255:12:169;;;;;;;;3308:14;16937:53:159;3255:12:169;;;;;:::i;16937:53:159:-;16936:54;16932:101;;2376:21773;;-1:-1:-1;;;17071:25:159;;2376:21773;;;;;17071:25;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;17071:25;;;;;;;2376:21773;17071:25;;;2376:21773;17071:25;;;16806:3;2376:21773;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17056:91:159;;17071:25;17056:91;;2376:21773;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17056:91;;-1:-1:-1;;;;;2376:21773:159;17056:91;;;;;;;2376:21773;17056:91;;;16806:3;17047:100;;;2376:21773;17047:100;;:::i;:::-;16806:3;16772:9;2376:21773;16772:9;;;;;;;;;17056:91;;;;;;;;;;;;;;;;:::i;:::-;;;2376:21773;;;;;;17056:91;;;;;;;17071:25;;;;;;;;;;;;;;:::i;:::-;;;;16932:101;17010:8;;2376:21773;17010:8;;;14293:213:46;2376:21773:159;14371:24:46;;14367:103;;2376:21773:159;;14293:213:46;:::o;14367:103::-;14418:41;;;;;14449:2;14418:41;2376:21773:159;;;;14418:41:46;;3391:164:48;;8233:26:49;3391:164:48;2376:21773:159;-1:-1:-1;2376:21773:159;3494:11:48;;;2376:21773:159;;-1:-1:-1;2376:21773:159;;;;8233:26:49;:::i;7082:141:18:-;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;5687:274:48;;2376:21773:159;-1:-1:-1;2376:21773:159;5804:11:48;;;2376:21773:159;;;-1:-1:-1;2376:21773:159;;5834:10:48;;;;:33;;;;5687:274;5830:103;;;;5942:12;5687:274;:::o;5830:103::-;5890:32;;;-1:-1:-1;5890:32:48;;2376:21773:159;;-1:-1:-1;5890:32:48;5834:33;8847:28:49;;;5238:14;5142:129;-1:-1:-1;2376:21773:159;5238:14:49;2376:21773:159;;;-1:-1:-1;2376:21773:159;;5238:26:49;;5142:129;;8847:28;5848:19:48;5834:33;;;;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;2376:21773:159;;;;5045:24:25;2376:21773:159;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;2376:21773:159;;;-1:-1:-1;2376:21773:159;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;;2376:21773:159;;;;;;;;-1:-1:-1;2376:21773:159;;-1:-1:-1;2376:21773:159;;;-1:-1:-1;2376:21773:159;:::o;3112:1368:49:-;;3307:14;;;2376:21773:159;;;;;;;;;;;3343:13:49;;;3339:1135;3343:13;;;-1:-1:-1;;2376:21773:159;;;;;;;;;-1:-1:-1;;2376:21773:159;;;20584:17;2376:21773;;;;3818:23:49;;;3814:378;;3339:1135;2376:21773:159;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;;;;20584:17;;2376:21773;;;;;;;;;;;;;;;;;;3307:14:49;4409:11;:::o;2376:21773:159:-;;;;;;;;;;;;3814:378:49;2376:21773:159;3881:22:49;4002:23;3881:22;;;:::i;:::-;2376:21773:159;;;;;;4002:23:49;;;;;:::i;:::-;2376:21773:159;;;;;;;;;;20584:17;;;2376:21773;;;;;;;;;;;;;;;;;;;3814:378:49;;;;;3339:1135;4451:12;;;;2376:21773:159;4451:12:49;:::o;2538:406::-;-1:-1:-1;2376:21773:159;;;5238:14:49;;;2376:21773:159;;;;;;2622:21:49;;2376:21773:159;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2817:14:49;2376:21773:159;;;;;;;2873:11:49;:::o","linkReferences":{},"immutableReferences":{"1929":[{"start":7265,"length":32},{"start":7485,"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.35+commit.47b9dedd\"},\"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 a 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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e\",\"dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"dependencies/symbiotic-core-main/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0x02050a27f2a82a20ef6e7e01e7fee06446b4203c36095e17f97c0ddb970085cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58c1bbf419cae523bc6005a9a26b6229b5609eab6df78c702c851087b1b767ef\",\"dweb:/ipfs/QmSf3tk6mJooVbaxsf6Hxtky8E9ZeZhwBF4tEXiNZTgXqz\"]},\"dependencies/symbiotic-core-main/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8\",\"dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]},\"dependencies/symbiotic-core-main/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x9a5e1c1e4a7ac7efb38bef2c1fdf7291bab50f0132254e785b369108d824644a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24eee610901bd2c1cd13bb34e947a0f5ee3c35b9955b47ce31413ceccd1364f7\",\"dweb:/ipfs/QmNT85tdWph5XaPUDnL9HXbAEW3yiQhCHkkZCCdvGpkyQq\"]},\"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8\",\"dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9\"]},\"dependencies/symbiotic-core-main/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x042cca2276f023a1ca4602b61705f8386947b61dddf03ffa5bee24123e6b1a3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96bfbc31d810dfe87891edeadc14b93bd4bf385047ab4c59e99a92ab7b6e9505\",\"dweb:/ipfs/QmdYGSSPLtuui8rYqWMSgtqvXFVZcS6TLnZKJx1CxKLbTm\"]},\"dependencies/symbiotic-core-main/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x24adabf74f067faa60d944c14419ca1af2ff9b599158e47e4c475ebc69e91cbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9588876a5c3c710e3139ff40fc5b206a4a789a01dcae3b515cff09856cac5c1f\",\"dweb:/ipfs/QmfHuuxVXvF9og6zPZrS2V39bMe4suBjTG3BxxMTKhijYQ\"]},\"dependencies/symbiotic-core-main/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0x29d693b9e936a82cb8e239565e2b06cff3e9670457dce0dc8e0f9f4076cf728c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc79dc5ff137023d7967c9a8499d1cb05baf9260695745bef2633a284ac06200\",\"dweb:/ipfs/QmNoNXRCUmJw5bpemrNMvMvbcPXqnkqmvXaLszF8YwdM6M\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78\",\"dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0\",\"dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC\"]},\"dependencies/symbiotic-rewards-main/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xc36e2cdf8ac28b45888181e3db591b257411e42e2c50b83fe0e47575b677ae7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63a8b272ab0c5d3252732f9ce0671412bd3c53092b026dc03b9286501dae2392\",\"dweb:/ipfs/QmSizhBvhFUo6APqRPtA1DJQ9TR9JA6ZyYnA5XA56ddMRw\"]},\"dependencies/symbiotic-rewards-main/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6\",\"dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD\"]},\"dependencies/symbiotic-rewards-main/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85\",\"dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59\",\"dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/Middleware.sol\":{\"keccak256\":\"0xa92bb45cdc5164cc097448b3e1d970b135782da82d9a306e71fcfd2d951990df\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://f8b56f1901805d17d3b8be48a05defe94c873e9b3f9abcc6f794a1465fad4752\",\"dweb:/ipfs/QmRqZLwBE2VdDrcyAZNd927rQ6EQNNS7UTjqMxbijPW5Us\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd\",\"dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd\",\"dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol":{"keccak256":"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402","urls":["bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e","dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"dependencies/symbiotic-core-main/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0x02050a27f2a82a20ef6e7e01e7fee06446b4203c36095e17f97c0ddb970085cf","urls":["bzz-raw://58c1bbf419cae523bc6005a9a26b6229b5609eab6df78c702c851087b1b767ef","dweb:/ipfs/QmSf3tk6mJooVbaxsf6Hxtky8E9ZeZhwBF4tEXiNZTgXqz"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IEntity.sol":{"keccak256":"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2","urls":["bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8","dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x9a5e1c1e4a7ac7efb38bef2c1fdf7291bab50f0132254e785b369108d824644a","urls":["bzz-raw://24eee610901bd2c1cd13bb34e947a0f5ee3c35b9955b47ce31413ceccd1364f7","dweb:/ipfs/QmNT85tdWph5XaPUDnL9HXbAEW3yiQhCHkkZCCdvGpkyQq"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791","urls":["bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8","dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/service/IOptInService.sol":{"keccak256":"0x042cca2276f023a1ca4602b61705f8386947b61dddf03ffa5bee24123e6b1a3e","urls":["bzz-raw://96bfbc31d810dfe87891edeadc14b93bd4bf385047ab4c59e99a92ab7b6e9505","dweb:/ipfs/QmdYGSSPLtuui8rYqWMSgtqvXFVZcS6TLnZKJx1CxKLbTm"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x24adabf74f067faa60d944c14419ca1af2ff9b599158e47e4c475ebc69e91cbb","urls":["bzz-raw://9588876a5c3c710e3139ff40fc5b206a4a789a01dcae3b515cff09856cac5c1f","dweb:/ipfs/QmfHuuxVXvF9og6zPZrS2V39bMe4suBjTG3BxxMTKhijYQ"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0x29d693b9e936a82cb8e239565e2b06cff3e9670457dce0dc8e0f9f4076cf728c","urls":["bzz-raw://fc79dc5ff137023d7967c9a8499d1cb05baf9260695745bef2633a284ac06200","dweb:/ipfs/QmNoNXRCUmJw5bpemrNMvMvbcPXqnkqmvXaLszF8YwdM6M"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol":{"keccak256":"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d","urls":["bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78","dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1","urls":["bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0","dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC"],"license":"MIT"},"dependencies/symbiotic-rewards-main/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xc36e2cdf8ac28b45888181e3db591b257411e42e2c50b83fe0e47575b677ae7d","urls":["bzz-raw://63a8b272ab0c5d3252732f9ce0671412bd3c53092b026dc03b9286501dae2392","dweb:/ipfs/QmSizhBvhFUo6APqRPtA1DJQ9TR9JA6ZyYnA5XA56ddMRw"],"license":"MIT"},"dependencies/symbiotic-rewards-main/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2","urls":["bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6","dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD"],"license":"MIT"},"dependencies/symbiotic-rewards-main/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d","urls":["bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85","dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c","urls":["bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59","dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Middleware.sol":{"keccak256":"0xa92bb45cdc5164cc097448b3e1d970b135782da82d9a306e71fcfd2d951990df","urls":["bzz-raw://f8b56f1901805d17d3b8be48a05defe94c873e9b3f9abcc6f794a1465fad4752","dweb:/ipfs/QmRqZLwBE2VdDrcyAZNd927rQ6EQNNS7UTjqMxbijPW5Us"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0","urls":["bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd","dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153","urls":["bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd","dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":80077,"exportedSymbols":{"EnumerableMap":[16925],"Gear":[87132],"IAccessControl":[82],"IBaseDelegator":[68884],"IDefaultOperatorRewards":[74569],"IDefaultStakerRewards":[74763],"IEntity":[68478],"IMiddleware":[76902],"IMigratableEntity":[68586],"INetworkMiddlewareService":[69372],"INetworkRegistry":[68376],"IOptInService":[69498],"IRegistry":[68710],"IVault":[70234],"IVetoSlasher":[69896],"MapWithTimeData":[87420],"Middleware":[80076],"OwnableUpgradeable":[19465],"ReentrancyGuardTransient":[6594],"SlotDerivation":[6724],"StorageSlot":[6848],"Subnetwork":[68356],"Time":[18907],"UUPSUpgradeable":[2079]},"nodeType":"SourceUnit","src":"114:24036:159","nodes":[{"id":77809,"nodeType":"PragmaDirective","src":"114:24:159","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":77811,"nodeType":"ImportDirective","src":"140:101:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":77810,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77813,"nodeType":"ImportDirective","src":"242:81:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":83,"symbolAliases":[{"foreign":{"id":77812,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"250:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77815,"nodeType":"ImportDirective","src":"324:88:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":77814,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"332:15:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77817,"nodeType":"ImportDirective","src":"413:100:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":6595,"symbolAliases":[{"foreign":{"id":77816,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"421:24:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77819,"nodeType":"ImportDirective","src":"514:80:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":77818,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"522:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77821,"nodeType":"ImportDirective","src":"595:74:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":77820,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"603:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77823,"nodeType":"ImportDirective","src":"670:86:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":16926,"symbolAliases":[{"foreign":{"id":77822,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16925,"src":"678:13:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77825,"nodeType":"ImportDirective","src":"757:66:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":18908,"symbolAliases":[{"foreign":{"id":77824,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"765:4:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77827,"nodeType":"ImportDirective","src":"824:48:159","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":76903,"symbolAliases":[{"foreign":{"id":77826,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"832:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77829,"nodeType":"ImportDirective","src":"873:44:159","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":87133,"symbolAliases":[{"foreign":{"id":77828,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"881:4:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77831,"nodeType":"ImportDirective","src":"918:66:159","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":87421,"symbolAliases":[{"foreign":{"id":77830,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87420,"src":"926:15:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77833,"nodeType":"ImportDirective","src":"985:81:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":68357,"symbolAliases":[{"foreign":{"id":77832,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68356,"src":"993:10:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77835,"nodeType":"ImportDirective","src":"1067:84:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":68377,"symbolAliases":[{"foreign":{"id":77834,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68376,"src":"1075:16:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77837,"nodeType":"ImportDirective","src":"1152:73:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":68479,"symbolAliases":[{"foreign":{"id":77836,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68478,"src":"1160:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77839,"nodeType":"ImportDirective","src":"1226:93:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":68587,"symbolAliases":[{"foreign":{"id":77838,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68586,"src":"1234:17:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77841,"nodeType":"ImportDirective","src":"1320:77:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":68711,"symbolAliases":[{"foreign":{"id":77840,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68710,"src":"1328:9:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77843,"nodeType":"ImportDirective","src":"1398:90:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":68885,"symbolAliases":[{"foreign":{"id":77842,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"1406:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77845,"nodeType":"ImportDirective","src":"1489:110:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":69373,"symbolAliases":[{"foreign":{"id":77844,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69372,"src":"1497:25:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77847,"nodeType":"ImportDirective","src":"1600:86:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":69499,"symbolAliases":[{"foreign":{"id":77846,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69498,"src":"1608:13:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77849,"nodeType":"ImportDirective","src":"1687:84:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":69897,"symbolAliases":[{"foreign":{"id":77848,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"1695:12:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77851,"nodeType":"ImportDirective","src":"1772:70:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":70235,"symbolAliases":[{"foreign":{"id":77850,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"1780:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77853,"nodeType":"ImportDirective","src":"1843:130:159","nodes":[],"absolutePath":"dependencies/symbiotic-rewards-main/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":74570,"symbolAliases":[{"foreign":{"id":77852,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74569,"src":"1856:23:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77855,"nodeType":"ImportDirective","src":"1974:118:159","nodes":[],"absolutePath":"dependencies/symbiotic-rewards-main/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":80077,"sourceUnit":74764,"symbolAliases":[{"foreign":{"id":77854,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"1982:21:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80076,"nodeType":"ContractDefinition","src":"2376:21773:159","nodes":[{"id":77867,"nodeType":"UsingForDirective","src":"2480:55:159","nodes":[],"global":false,"libraryName":{"id":77864,"name":"EnumerableMap","nameLocations":["2486:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":16925,"src":"2486:13:159"},"typeName":{"id":77866,"nodeType":"UserDefinedTypeName","pathNode":{"id":77865,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2504:13:159","2518:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2504:30:159"},"referencedDeclaration":14966,"src":"2504:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77871,"nodeType":"UsingForDirective","src":"2540:57:159","nodes":[],"global":false,"libraryName":{"id":77868,"name":"MapWithTimeData","nameLocations":["2546:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":87420,"src":"2546:15:159"},"typeName":{"id":77870,"nodeType":"UserDefinedTypeName","pathNode":{"id":77869,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2566:13:159","2580:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2566:30:159"},"referencedDeclaration":14966,"src":"2566:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77875,"nodeType":"UsingForDirective","src":"2603:58:159","nodes":[],"global":false,"libraryName":{"id":77872,"name":"EnumerableMap","nameLocations":["2609:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":16925,"src":"2609:13:159"},"typeName":{"id":77874,"nodeType":"UserDefinedTypeName","pathNode":{"id":77873,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2627:13:159","2641:19:159"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"2627:33:159"},"referencedDeclaration":15261,"src":"2627:33:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$15261_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":77878,"nodeType":"UsingForDirective","src":"2667:29:159","nodes":[],"global":false,"libraryName":{"id":77876,"name":"Subnetwork","nameLocations":["2673:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":68356,"src":"2673:10:159"},"typeName":{"id":77877,"name":"address","nodeType":"ElementaryTypeName","src":"2688:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":77881,"nodeType":"VariableDeclaration","src":"2809:106:159","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2834:12:159","scope":80076,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2809:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":77880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2849:66:159","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":77884,"nodeType":"VariableDeclaration","src":"2922:50:159","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2947:18:159","scope":80076,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77882,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2922:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":77883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2968:4:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":77887,"nodeType":"VariableDeclaration","src":"2978:45:159","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3001:18:159","scope":80076,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77885,"name":"uint8","nodeType":"ElementaryTypeName","src":"2978:5:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":77886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3022:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":77895,"nodeType":"FunctionDefinition","src":"3098:53:159","nodes":[],"body":{"id":77894,"nodeType":"Block","src":"3112:39:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77891,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"3122:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3122:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77893,"nodeType":"ExpressionStatement","src":"3122:22:159"}]},"documentation":{"id":77888,"nodeType":"StructuredDocumentation","src":"3030:63:159","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77889,"nodeType":"ParameterList","parameters":[],"src":"3109:2:159"},"returnParameters":{"id":77890,"nodeType":"ParameterList","parameters":[],"src":"3112:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78046,"nodeType":"FunctionDefinition","src":"3157:1234:159","nodes":[],"body":{"id":78045,"nodeType":"Block","src":"3225:1166:159","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":77904,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3250:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3258:5:159","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":76633,"src":"3250:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77903,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"3235:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3235:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77907,"nodeType":"ExpressionStatement","src":"3235:29:159"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":77909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3291:33:159","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":77908,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"3275:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3275:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77911,"nodeType":"ExpressionStatement","src":"3275:50:159"},{"assignments":[77914],"declarations":[{"constant":false,"id":77914,"mutability":"mutable","name":"$","nameLocation":"3351:1:159","nodeType":"VariableDeclaration","scope":78045,"src":"3335:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77913,"nodeType":"UserDefinedTypeName","pathNode":{"id":77912,"name":"Storage","nameLocations":["3335:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"3335:7:159"},"referencedDeclaration":76699,"src":"3335:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77917,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77915,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"3355:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3355:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3335:30:159"},{"expression":{"id":77923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77918,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3376:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3378:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"3376:13:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77921,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3392:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3400:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76635,"src":"3392:19:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3376:35:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77924,"nodeType":"ExpressionStatement","src":"3376:35:159"},{"expression":{"id":77930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77925,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3421:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3423:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"3421:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77928,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3447:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3455:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76637,"src":"3447:29:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3421:55:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77931,"nodeType":"ExpressionStatement","src":"3421:55:159"},{"expression":{"id":77937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77932,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3486:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3488:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"3486:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77935,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3510:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3518:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76639,"src":"3510:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3486:51:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77938,"nodeType":"ExpressionStatement","src":"3486:51:159"},{"expression":{"id":77944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77939,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3547:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3549:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"3547:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77942,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3568:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3576:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76641,"src":"3568:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3547:45:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77945,"nodeType":"ExpressionStatement","src":"3547:45:159"},{"expression":{"id":77951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77946,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3602:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3604:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"3602:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77949,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3622:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3630:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76643,"src":"3622:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3602:43:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77952,"nodeType":"ExpressionStatement","src":"3602:43:159"},{"expression":{"id":77958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77953,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3655:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3657:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"3655:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77956,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3682:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3690:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76645,"src":"3682:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3655:57:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77959,"nodeType":"ExpressionStatement","src":"3655:57:159"},{"expression":{"id":77965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77960,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3722:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3724:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"3722:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77963,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3752:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3760:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76651,"src":"3752:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3722:63:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77966,"nodeType":"ExpressionStatement","src":"3722:63:159"},{"expression":{"id":77972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77967,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3795:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3797:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"3795:25:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77970,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3823:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3831:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76647,"src":"3823:31:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3795:59:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":77973,"nodeType":"ExpressionStatement","src":"3795:59:159"},{"expression":{"id":77979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77974,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3864:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3866:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"3864:21:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77977,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3888:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3896:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76649,"src":"3888:27:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3864:51:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":77980,"nodeType":"ExpressionStatement","src":"3864:51:159"},{"expression":{"id":77986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77981,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3948:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3950:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"3948:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77984,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"3963:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3971:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76655,"src":"3963:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3948:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77987,"nodeType":"ExpressionStatement","src":"3948:33:159"},{"expression":{"id":77998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77988,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"3991:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3993:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"3991:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77996,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77887,"src":"4031:18:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":77993,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4014:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$80076","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$80076","typeString":"contract Middleware"}],"id":77992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4006:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77991,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:159","typeDescriptions":{}}},"id":77994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4006:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4020:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":68318,"src":"4006:24:159","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":77997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4006:44:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3991:59:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77999,"nodeType":"ExpressionStatement","src":"3991:59:159"},{"expression":{"id":78005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78000,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"4060:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4062:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"4060:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78003,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"4076:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4084:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76653,"src":"4076:19:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4060:35:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78006,"nodeType":"ExpressionStatement","src":"4060:35:159"},{"expression":{"id":78012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78007,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"4106:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4108:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"4106:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78010,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"4117:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4125:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76657,"src":"4117:14:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4106:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78013,"nodeType":"ExpressionStatement","src":"4106:25:159"},{"expression":{"id":78019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78014,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"4142:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4144:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"4142:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78017,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"4156:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4164:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76660,"src":"4156:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4142:31:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78020,"nodeType":"ExpressionStatement","src":"4142:31:159"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":78022,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"4201:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4209:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76660,"src":"4201:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":78024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4219:15:159","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":86242,"src":"4201:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78021,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68376,"src":"4184:16:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$68376_$","typeString":"type(contract INetworkRegistry)"}},"id":78025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4184:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$68376","typeString":"contract INetworkRegistry"}},"id":78026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4236:15:159","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":68375,"src":"4184:67:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":78027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4184:69:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78028,"nodeType":"ExpressionStatement","src":"4184:69:159"},{"expression":{"arguments":[{"arguments":[{"id":78037,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4348:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$80076","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$80076","typeString":"contract Middleware"}],"id":78036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4340:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78035,"name":"address","nodeType":"ElementaryTypeName","src":"4340:7:159","typeDescriptions":{}}},"id":78038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4340:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":78030,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"4289:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4297:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76660,"src":"4289:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":78032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4307:17:159","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":86244,"src":"4289:35:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78029,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69372,"src":"4263:25:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$69372_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":78033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:62:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$69372","typeString":"contract INetworkMiddlewareService"}},"id":78034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4326:13:159","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":69371,"src":"4263:76:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":78039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:91:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78040,"nodeType":"ExpressionStatement","src":"4263:91:159"},{"expression":{"arguments":[{"id":78042,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77914,"src":"4382:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":78041,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79625,"src":"4365:16:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76699_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":78043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4365:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78044,"nodeType":"ExpressionStatement","src":"4365:19:159"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":77901,"kind":"modifierInvocation","modifierName":{"id":77900,"name":"initializer","nameLocations":["3213:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"3213:11:159"},"nodeType":"ModifierInvocation","src":"3213:11:159"}],"name":"initialize","nameLocation":"3166:10:159","parameters":{"id":77899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77898,"mutability":"mutable","name":"_params","nameLocation":"3197:7:159","nodeType":"VariableDeclaration","scope":78046,"src":"3177:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":77897,"nodeType":"UserDefinedTypeName","pathNode":{"id":77896,"name":"InitParams","nameLocations":["3177:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":76661,"src":"3177:10:159"},"referencedDeclaration":76661,"src":"3177:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3176:29:159"},"returnParameters":{"id":77902,"nodeType":"ParameterList","parameters":[],"src":"3225:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78243,"nodeType":"FunctionDefinition","src":"4464:1578:159","nodes":[],"body":{"id":78242,"nodeType":"Block","src":"4522:1520:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78056,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"4547:5:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:7:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78055,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"4532:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78059,"nodeType":"ExpressionStatement","src":"4532:23:159"},{"assignments":[78062],"declarations":[{"constant":false,"id":78062,"mutability":"mutable","name":"oldStorage","nameLocation":"4582:10:159","nodeType":"VariableDeclaration","scope":78242,"src":"4566:26:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78061,"nodeType":"UserDefinedTypeName","pathNode":{"id":78060,"name":"Storage","nameLocations":["4566:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"4566:7:159"},"referencedDeclaration":76699,"src":"4566:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78063,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"4595:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4595:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4566:39:159"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":78067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4632:33:159","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":78066,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"4616:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4616:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78069,"nodeType":"ExpressionStatement","src":"4616:50:159"},{"assignments":[78072],"declarations":[{"constant":false,"id":78072,"mutability":"mutable","name":"newStorage","nameLocation":"4692:10:159","nodeType":"VariableDeclaration","scope":78242,"src":"4676:26:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78071,"nodeType":"UserDefinedTypeName","pathNode":{"id":78070,"name":"Storage","nameLocations":["4676:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"4676:7:159"},"referencedDeclaration":76699,"src":"4676:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78075,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78073,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"4705:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4705:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4676:39:159"},{"expression":{"id":78081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78076,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"4726:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4737:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"4726:22:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78079,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"4751:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4762:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"4751:22:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4726:47:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78082,"nodeType":"ExpressionStatement","src":"4726:47:159"},{"expression":{"id":78088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78083,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"4783:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4794:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"4783:32:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78086,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"4818:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4829:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"4818:32:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4783:67:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78089,"nodeType":"ExpressionStatement","src":"4783:67:159"},{"expression":{"id":78095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78090,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"4860:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4871:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"4860:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78093,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"4893:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4904:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"4893:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4860:63:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78096,"nodeType":"ExpressionStatement","src":"4860:63:159"},{"expression":{"id":78102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78097,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"4933:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4944:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"4933:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78100,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"4963:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4974:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"4963:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4933:57:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78103,"nodeType":"ExpressionStatement","src":"4933:57:159"},{"expression":{"id":78109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78104,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5000:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5011:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"5000:26:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78107,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5029:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5040:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"5029:26:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5000:55:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78110,"nodeType":"ExpressionStatement","src":"5000:55:159"},{"expression":{"id":78116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78111,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5065:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5076:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"5065:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78114,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5101:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5112:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"5101:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5065:69:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78117,"nodeType":"ExpressionStatement","src":"5065:69:159"},{"expression":{"id":78123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78118,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5144:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5155:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"5144:36:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78121,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5183:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5194:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"5183:36:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5144:75:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78124,"nodeType":"ExpressionStatement","src":"5144:75:159"},{"expression":{"id":78130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78125,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5229:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5240:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"5229:34:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78128,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5266:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5277:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"5266:34:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5229:71:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":78131,"nodeType":"ExpressionStatement","src":"5229:71:159"},{"expression":{"id":78137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78132,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5310:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5321:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"5310:30:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78135,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5343:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5354:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"5343:30:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5310:63:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":78138,"nodeType":"ExpressionStatement","src":"5310:63:159"},{"expression":{"id":78144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78139,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5383:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5394:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"5383:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78142,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5407:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5418:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"5407:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5383:45:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78145,"nodeType":"ExpressionStatement","src":"5383:45:159"},{"expression":{"id":78151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78146,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5438:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5449:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"5438:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78149,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5462:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5473:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"5462:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5438:45:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78152,"nodeType":"ExpressionStatement","src":"5438:45:159"},{"expression":{"id":78158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78153,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5493:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5504:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"5493:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78156,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5518:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5529:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"5518:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5493:47:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78159,"nodeType":"ExpressionStatement","src":"5493:47:159"},{"expression":{"id":78165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78160,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5550:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5561:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"5550:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78163,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5570:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5581:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"5570:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5550:37:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78166,"nodeType":"ExpressionStatement","src":"5550:37:159"},{"expression":{"id":78172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78167,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5597:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5608:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"5597:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78170,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5620:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5631:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"5620:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5597:43:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78173,"nodeType":"ExpressionStatement","src":"5597:43:159"},{"body":{"id":78206,"nodeType":"Block","src":"5711:132:159","statements":[{"assignments":[78188,78190],"declarations":[{"constant":false,"id":78188,"mutability":"mutable","name":"key","nameLocation":"5734:3:159","nodeType":"VariableDeclaration","scope":78206,"src":"5726:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78187,"name":"address","nodeType":"ElementaryTypeName","src":"5726:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78190,"mutability":"mutable","name":"value","nameLocation":"5747:5:159","nodeType":"VariableDeclaration","scope":78206,"src":"5739:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78189,"name":"uint256","nodeType":"ElementaryTypeName","src":"5739:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78196,"initialValue":{"arguments":[{"id":78194,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78175,"src":"5780:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78191,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5756:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5767:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"5756:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5777:2:159","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":15121,"src":"5756:23:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":78195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5756:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5725:57:159"},{"expression":{"arguments":[{"id":78202,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78188,"src":"5821:3:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78203,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78190,"src":"5826:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78197,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5796:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5807:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"5796:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5817:3:159","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":14999,"src":"5796:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":78204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5796:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78205,"nodeType":"ExpressionStatement","src":"5796:36:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78178,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78175,"src":"5671:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":78179,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5675:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5686:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"5675:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5696:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"5675:27:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":78182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5675:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5671:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78207,"initializationExpression":{"assignments":[78175],"declarations":[{"constant":false,"id":78175,"mutability":"mutable","name":"i","nameLocation":"5664:1:159","nodeType":"VariableDeclaration","scope":78207,"src":"5656:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78174,"name":"uint256","nodeType":"ElementaryTypeName","src":"5656:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78177,"initialValue":{"hexValue":"30","id":78176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5668:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5656:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5706:3:159","subExpression":{"id":78184,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78175,"src":"5706:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78186,"nodeType":"ExpressionStatement","src":"5706:3:159"},"nodeType":"ForStatement","src":"5651:192:159"},{"body":{"id":78240,"nodeType":"Block","src":"5910:126:159","statements":[{"assignments":[78222,78224],"declarations":[{"constant":false,"id":78222,"mutability":"mutable","name":"key","nameLocation":"5933:3:159","nodeType":"VariableDeclaration","scope":78240,"src":"5925:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78221,"name":"address","nodeType":"ElementaryTypeName","src":"5925:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78224,"mutability":"mutable","name":"value","nameLocation":"5946:5:159","nodeType":"VariableDeclaration","scope":78240,"src":"5938:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78223,"name":"uint256","nodeType":"ElementaryTypeName","src":"5938:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78230,"initialValue":{"arguments":[{"id":78228,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78209,"src":"5976:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78225,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5955:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5966:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"5955:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5973:2:159","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":15121,"src":"5955:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":78229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5955:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5924:54:159"},{"expression":{"arguments":[{"id":78236,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78222,"src":"6014:3:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78237,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78224,"src":"6019:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78231,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78072,"src":"5992:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6003:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"5992:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6010:3:159","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":14999,"src":"5992:21:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":78238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5992:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78239,"nodeType":"ExpressionStatement","src":"5992:33:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78212,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78209,"src":"5873:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":78213,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78062,"src":"5877:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5888:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"5877:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5895:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"5877:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":78216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5877:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5873:30:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78241,"initializationExpression":{"assignments":[78209],"declarations":[{"constant":false,"id":78209,"mutability":"mutable","name":"i","nameLocation":"5866:1:159","nodeType":"VariableDeclaration","scope":78241,"src":"5858:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78208,"name":"uint256","nodeType":"ElementaryTypeName","src":"5858:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78211,"initialValue":{"hexValue":"30","id":78210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5870:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5858:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5905:3:159","subExpression":{"id":78218,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78209,"src":"5905:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78220,"nodeType":"ExpressionStatement","src":"5905:3:159"},"nodeType":"ForStatement","src":"5853:183:159"}]},"documentation":{"id":78047,"nodeType":"StructuredDocumentation","src":"4397:62:159","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":78050,"kind":"modifierInvocation","modifierName":{"id":78049,"name":"onlyOwner","nameLocations":["4495:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"4495:9:159"},"nodeType":"ModifierInvocation","src":"4495:9:159"},{"arguments":[{"hexValue":"32","id":78052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4519:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78053,"kind":"modifierInvocation","modifierName":{"id":78051,"name":"reinitializer","nameLocations":["4505:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"4505:13:159"},"nodeType":"ModifierInvocation","src":"4505:16:159"}],"name":"reinitialize","nameLocation":"4473:12:159","parameters":{"id":78048,"nodeType":"ParameterList","parameters":[],"src":"4485:2:159"},"returnParameters":{"id":78054,"nodeType":"ParameterList","parameters":[],"src":"4522:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78253,"nodeType":"FunctionDefinition","src":"6207:84:159","nodes":[],"body":{"id":78252,"nodeType":"Block","src":"6289:2:159","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":78244,"nodeType":"StructuredDocumentation","src":"6048:154:159","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":78250,"kind":"modifierInvocation","modifierName":{"id":78249,"name":"onlyOwner","nameLocations":["6279:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"6279:9:159"},"nodeType":"ModifierInvocation","src":"6279:9:159"}],"name":"_authorizeUpgrade","nameLocation":"6216:17:159","overrides":{"id":78248,"nodeType":"OverrideSpecifier","overrides":[],"src":"6270:8:159"},"parameters":{"id":78247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78246,"mutability":"mutable","name":"newImplementation","nameLocation":"6242:17:159","nodeType":"VariableDeclaration","scope":78253,"src":"6234:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78245,"name":"address","nodeType":"ElementaryTypeName","src":"6234:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6233:27:159"},"returnParameters":{"id":78251,"nodeType":"ParameterList","parameters":[],"src":"6289:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78263,"nodeType":"FunctionDefinition","src":"6316:98:159","nodes":[],"body":{"id":78262,"nodeType":"Block","src":"6368:46:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78258,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"6385:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6385:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78260,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6396:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"6385:22:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78257,"id":78261,"nodeType":"Return","src":"6378:29:159"}]},"baseFunctions":[76723],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6325:11:159","parameters":{"id":78254,"nodeType":"ParameterList","parameters":[],"src":"6336:2:159"},"returnParameters":{"id":78257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78263,"src":"6360:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78255,"name":"uint48","nodeType":"ElementaryTypeName","src":"6360:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6359:8:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78273,"nodeType":"FunctionDefinition","src":"6420:118:159","nodes":[],"body":{"id":78272,"nodeType":"Block","src":"6482:56:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78268,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"6499:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6499:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6510:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"6499:32:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78267,"id":78271,"nodeType":"Return","src":"6492:39:159"}]},"baseFunctions":[76728],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6429:21:159","parameters":{"id":78264,"nodeType":"ParameterList","parameters":[],"src":"6450:2:159"},"returnParameters":{"id":78267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78273,"src":"6474:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78265,"name":"uint48","nodeType":"ElementaryTypeName","src":"6474:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6473:8:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78283,"nodeType":"FunctionDefinition","src":"6544:116:159","nodes":[],"body":{"id":78282,"nodeType":"Block","src":"6606:54:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78278,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"6623:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6623:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6634:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"6623:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78277,"id":78281,"nodeType":"Return","src":"6616:37:159"}]},"baseFunctions":[76733],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6553:19:159","parameters":{"id":78274,"nodeType":"ParameterList","parameters":[],"src":"6572:2:159"},"returnParameters":{"id":78277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78283,"src":"6598:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78275,"name":"uint48","nodeType":"ElementaryTypeName","src":"6598:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6597:8:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78293,"nodeType":"FunctionDefinition","src":"6666:110:159","nodes":[],"body":{"id":78292,"nodeType":"Block","src":"6725:51:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78288,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"6742:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6742:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6753:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"6742:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78287,"id":78291,"nodeType":"Return","src":"6735:34:159"}]},"baseFunctions":[76738],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6675:16:159","parameters":{"id":78284,"nodeType":"ParameterList","parameters":[],"src":"6691:2:159"},"returnParameters":{"id":78287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78293,"src":"6717:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78285,"name":"uint48","nodeType":"ElementaryTypeName","src":"6717:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6716:8:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78303,"nodeType":"FunctionDefinition","src":"6782:108:159","nodes":[],"body":{"id":78302,"nodeType":"Block","src":"6840:50:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78298,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"6857:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6857:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6868:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"6857:26:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78297,"id":78301,"nodeType":"Return","src":"6850:33:159"}]},"baseFunctions":[76743],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6791:15:159","parameters":{"id":78294,"nodeType":"ParameterList","parameters":[],"src":"6806:2:159"},"returnParameters":{"id":78297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78303,"src":"6832:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78295,"name":"uint48","nodeType":"ElementaryTypeName","src":"6832:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6831:8:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78313,"nodeType":"FunctionDefinition","src":"6896:122:159","nodes":[],"body":{"id":78312,"nodeType":"Block","src":"6961:57:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78308,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"6978:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6978:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6989:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"6978:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78307,"id":78311,"nodeType":"Return","src":"6971:40:159"}]},"baseFunctions":[76748],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6905:22:159","parameters":{"id":78304,"nodeType":"ParameterList","parameters":[],"src":"6927:2:159"},"returnParameters":{"id":78307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78313,"src":"6953:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78305,"name":"uint48","nodeType":"ElementaryTypeName","src":"6953:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6952:8:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78323,"nodeType":"FunctionDefinition","src":"7024:129:159","nodes":[],"body":{"id":78322,"nodeType":"Block","src":"7093:60:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78318,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"7110:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7110:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7121:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"7110:36:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78317,"id":78321,"nodeType":"Return","src":"7103:43:159"}]},"baseFunctions":[76753],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7033:25:159","parameters":{"id":78314,"nodeType":"ParameterList","parameters":[],"src":"7058:2:159"},"returnParameters":{"id":78317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78323,"src":"7084:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78315,"name":"uint256","nodeType":"ElementaryTypeName","src":"7084:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7083:9:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78333,"nodeType":"FunctionDefinition","src":"7159:124:159","nodes":[],"body":{"id":78332,"nodeType":"Block","src":"7225:58:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78328,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"7242:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7242:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7253:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"7242:34:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":78327,"id":78331,"nodeType":"Return","src":"7235:41:159"}]},"baseFunctions":[76758],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7168:23:159","parameters":{"id":78324,"nodeType":"ParameterList","parameters":[],"src":"7191:2:159"},"returnParameters":{"id":78327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78333,"src":"7217:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":78325,"name":"uint64","nodeType":"ElementaryTypeName","src":"7217:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7216:8:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78343,"nodeType":"FunctionDefinition","src":"7289:116:159","nodes":[],"body":{"id":78342,"nodeType":"Block","src":"7351:54:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78338,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"7368:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7368:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7379:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"7368:30:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":78337,"id":78341,"nodeType":"Return","src":"7361:37:159"}]},"baseFunctions":[76763],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7298:19:159","parameters":{"id":78334,"nodeType":"ParameterList","parameters":[],"src":"7317:2:159"},"returnParameters":{"id":78337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78343,"src":"7343:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":78335,"name":"uint64","nodeType":"ElementaryTypeName","src":"7343:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7342:8:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78353,"nodeType":"FunctionDefinition","src":"7411:99:159","nodes":[],"body":{"id":78352,"nodeType":"Block","src":"7465:45:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78348,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"7482:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7482:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7493:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"7482:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78347,"id":78351,"nodeType":"Return","src":"7475:28:159"}]},"baseFunctions":[76768],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7420:10:159","parameters":{"id":78344,"nodeType":"ParameterList","parameters":[],"src":"7430:2:159"},"returnParameters":{"id":78347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78353,"src":"7456:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78345,"name":"address","nodeType":"ElementaryTypeName","src":"7456:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7455:9:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78363,"nodeType":"FunctionDefinition","src":"7516:99:159","nodes":[],"body":{"id":78362,"nodeType":"Block","src":"7570:45:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78358,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"7587:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7587:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7598:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"7587:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78357,"id":78361,"nodeType":"Return","src":"7580:28:159"}]},"baseFunctions":[76773],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7525:10:159","parameters":{"id":78354,"nodeType":"ParameterList","parameters":[],"src":"7535:2:159"},"returnParameters":{"id":78357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78363,"src":"7561:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7561:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7560:9:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78373,"nodeType":"FunctionDefinition","src":"7621:101:159","nodes":[],"body":{"id":78372,"nodeType":"Block","src":"7676:46:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78368,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"7693:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7693:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7704:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"7693:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78367,"id":78371,"nodeType":"Return","src":"7686:29:159"}]},"baseFunctions":[76778],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7630:11:159","parameters":{"id":78364,"nodeType":"ParameterList","parameters":[],"src":"7641:2:159"},"returnParameters":{"id":78367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78373,"src":"7667:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78365,"name":"uint256","nodeType":"ElementaryTypeName","src":"7667:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7666:9:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78383,"nodeType":"FunctionDefinition","src":"7728:91:159","nodes":[],"body":{"id":78382,"nodeType":"Block","src":"7778:41:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78378,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"7795:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7795:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7806:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"7795:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78377,"id":78381,"nodeType":"Return","src":"7788:24:159"}]},"baseFunctions":[76783],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7737:6:159","parameters":{"id":78374,"nodeType":"ParameterList","parameters":[],"src":"7743:2:159"},"returnParameters":{"id":78377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78383,"src":"7769:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78375,"name":"address","nodeType":"ElementaryTypeName","src":"7769:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7768:9:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78394,"nodeType":"FunctionDefinition","src":"7825:129:159","nodes":[],"body":{"id":78393,"nodeType":"Block","src":"7910:44:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78389,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"7927:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7927:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7938:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"7927:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":78388,"id":78392,"nodeType":"Return","src":"7920:27:159"}]},"baseFunctions":[76789],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7834:18:159","parameters":{"id":78384,"nodeType":"ParameterList","parameters":[],"src":"7852:2:159"},"returnParameters":{"id":78388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78394,"src":"7878:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":78386,"nodeType":"UserDefinedTypeName","pathNode":{"id":78385,"name":"Gear.SymbioticContracts","nameLocations":["7878:4:159","7883:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":86257,"src":"7878:23:159"},"referencedDeclaration":86257,"src":"7878:23:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7877:32:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78425,"nodeType":"FunctionDefinition","src":"7979:263:159","nodes":[],"body":{"id":78424,"nodeType":"Block","src":"8035:207:159","nodes":[],"statements":[{"assignments":[78401],"declarations":[{"constant":false,"id":78401,"mutability":"mutable","name":"$","nameLocation":"8061:1:159","nodeType":"VariableDeclaration","scope":78424,"src":"8045:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78400,"nodeType":"UserDefinedTypeName","pathNode":{"id":78399,"name":"Storage","nameLocations":["8045:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"8045:7:159"},"referencedDeclaration":76699,"src":"8045:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78404,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78402,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"8065:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8065:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8045:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78405,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8089:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8093:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8089:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":78407,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78401,"src":"8103:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8105:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8103:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8115:18:159","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":86252,"src":"8103:30:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8089:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78415,"nodeType":"IfStatement","src":"8085:101:159","trueBody":{"id":78414,"nodeType":"Block","src":"8135:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78411,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76595,"src":"8156:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8156:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78413,"nodeType":"RevertStatement","src":"8149:26:159"}]}},{"expression":{"id":78422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78416,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78401,"src":"8195:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8197:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8195:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8207:18:159","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":86252,"src":"8195:30:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78421,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78396,"src":"8228:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8195:40:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78423,"nodeType":"ExpressionStatement","src":"8195:40:159"}]},"baseFunctions":[76794],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"7988:20:159","parameters":{"id":78397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78396,"mutability":"mutable","name":"newRole","nameLocation":"8017:7:159","nodeType":"VariableDeclaration","scope":78425,"src":"8009:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78395,"name":"address","nodeType":"ElementaryTypeName","src":"8009:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8008:17:159"},"returnParameters":{"id":78398,"nodeType":"ParameterList","parameters":[],"src":"8035:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78456,"nodeType":"FunctionDefinition","src":"8248:259:159","nodes":[],"body":{"id":78455,"nodeType":"Block","src":"8303:204:159","nodes":[],"statements":[{"assignments":[78432],"declarations":[{"constant":false,"id":78432,"mutability":"mutable","name":"$","nameLocation":"8329:1:159","nodeType":"VariableDeclaration","scope":78455,"src":"8313:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78431,"nodeType":"UserDefinedTypeName","pathNode":{"id":78430,"name":"Storage","nameLocations":["8313:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"8313:7:159"},"referencedDeclaration":76699,"src":"8313:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78435,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78433,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"8333:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8333:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8313:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78436,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8357:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8361:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8357:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":78438,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78432,"src":"8371:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8373:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8371:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8383:17:159","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"8371:29:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8357:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78446,"nodeType":"IfStatement","src":"8353:99:159","trueBody":{"id":78445,"nodeType":"Block","src":"8402:50:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78442,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76598,"src":"8423:16:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8423:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78444,"nodeType":"RevertStatement","src":"8416:25:159"}]}},{"expression":{"id":78453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78447,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78432,"src":"8461:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8463:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8461:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8473:17:159","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"8461:29:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78452,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78427,"src":"8493:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8461:39:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78454,"nodeType":"ExpressionStatement","src":"8461:39:159"}]},"baseFunctions":[76799],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8257:19:159","parameters":{"id":78428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78427,"mutability":"mutable","name":"newRole","nameLocation":"8285:7:159","nodeType":"VariableDeclaration","scope":78456,"src":"8277:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78426,"name":"address","nodeType":"ElementaryTypeName","src":"8277:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8276:17:159"},"returnParameters":{"id":78429,"nodeType":"ParameterList","parameters":[],"src":"8303:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78510,"nodeType":"FunctionDefinition","src":"8563:405:159","nodes":[],"body":{"id":78509,"nodeType":"Block","src":"8600:368:159","nodes":[],"statements":[{"assignments":[78461],"declarations":[{"constant":false,"id":78461,"mutability":"mutable","name":"$","nameLocation":"8626:1:159","nodeType":"VariableDeclaration","scope":78509,"src":"8610:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78460,"nodeType":"UserDefinedTypeName","pathNode":{"id":78459,"name":"Storage","nameLocations":["8610:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"8610:7:159"},"referencedDeclaration":76699,"src":"8610:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78462,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"8630:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8630:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8610:30:159"},{"condition":{"id":78474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8655:61:159","subExpression":{"arguments":[{"expression":{"id":78471,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8705:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8709:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8705:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":78466,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78461,"src":"8666:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8668:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8666:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8678:16:159","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":86240,"src":"8666:28:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78465,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68710,"src":"8656:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$68710_$","typeString":"type(contract IRegistry)"}},"id":78469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8656:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$68710","typeString":"contract IRegistry"}},"id":78470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8696:8:159","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":68695,"src":"8656:48:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":78473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8656:60:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78479,"nodeType":"IfStatement","src":"8651:121:159","trueBody":{"id":78478,"nodeType":"Block","src":"8718:54:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78475,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76544,"src":"8739:20:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8739:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78477,"nodeType":"RevertStatement","src":"8732:29:159"}]}},{"condition":{"id":78493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8785:77:159","subExpression":{"arguments":[{"expression":{"id":78486,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8836:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8840:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8836:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":78490,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8856:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$80076","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$80076","typeString":"contract Middleware"}],"id":78489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8848:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78488,"name":"address","nodeType":"ElementaryTypeName","src":"8848:7:159","typeDescriptions":{}}},"id":78491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8848:13:159","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":78481,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78461,"src":"8800:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8802:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8800:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8812:12:159","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":86246,"src":"8800:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78480,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69498,"src":"8786:13:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$69498_$","typeString":"type(contract IOptInService)"}},"id":78484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8786:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$69498","typeString":"contract IOptInService"}},"id":78485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8826:9:159","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":69445,"src":"8786:49:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":78492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8786:76:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78498,"nodeType":"IfStatement","src":"8781:137:159","trueBody":{"id":78497,"nodeType":"Block","src":"8864:54:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78494,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76547,"src":"8885:20:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8885:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78496,"nodeType":"RevertStatement","src":"8878:29:159"}]}},{"expression":{"arguments":[{"expression":{"id":78504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8947:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8951:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8947:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":78506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8959:1:159","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":78499,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78461,"src":"8928:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8930:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"8928:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8940:6:159","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":87245,"src":"8928:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":78507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8928:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78508,"nodeType":"ExpressionStatement","src":"8928:33:159"}]},"baseFunctions":[76838],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8572:16:159","parameters":{"id":78457,"nodeType":"ParameterList","parameters":[],"src":"8588:2:159"},"returnParameters":{"id":78458,"nodeType":"ParameterList","parameters":[],"src":"8600:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78522,"nodeType":"FunctionDefinition","src":"8974:93:159","nodes":[],"body":{"id":78521,"nodeType":"Block","src":"9010:57:159","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78517,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9049:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9053:6:159","memberName":"sender","nodeType":"MemberAccess","src":"9049:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78513,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"9020:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9031:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"9020:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9041:7:159","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":87339,"src":"9020:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":78519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78520,"nodeType":"ExpressionStatement","src":"9020:40:159"}]},"baseFunctions":[76842],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"8983:15:159","parameters":{"id":78511,"nodeType":"ParameterList","parameters":[],"src":"8998:2:159"},"returnParameters":{"id":78512,"nodeType":"ParameterList","parameters":[],"src":"9010:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78534,"nodeType":"FunctionDefinition","src":"9073:91:159","nodes":[],"body":{"id":78533,"nodeType":"Block","src":"9108:56:159","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9146:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9150:6:159","memberName":"sender","nodeType":"MemberAccess","src":"9146:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78525,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"9118:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9118:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9129:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"9118:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9139:6:159","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":87292,"src":"9118:27:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":78531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9118:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78532,"nodeType":"ExpressionStatement","src":"9118:39:159"}]},"baseFunctions":[76846],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9082:14:159","parameters":{"id":78523,"nodeType":"ParameterList","parameters":[],"src":"9096:2:159"},"returnParameters":{"id":78524,"nodeType":"ParameterList","parameters":[],"src":"9108:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78579,"nodeType":"FunctionDefinition","src":"9170:362:159","nodes":[],"body":{"id":78578,"nodeType":"Block","src":"9225:307:159","nodes":[],"statements":[{"assignments":[78541],"declarations":[{"constant":false,"id":78541,"mutability":"mutable","name":"$","nameLocation":"9251:1:159","nodeType":"VariableDeclaration","scope":78578,"src":"9235:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78540,"nodeType":"UserDefinedTypeName","pathNode":{"id":78539,"name":"Storage","nameLocations":["9235:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"9235:7:159"},"referencedDeclaration":76699,"src":"9235:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78544,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78542,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"9255:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9255:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9235:30:159"},{"assignments":[null,78546],"declarations":[null,{"constant":false,"id":78546,"mutability":"mutable","name":"disabledTime","nameLocation":"9286:12:159","nodeType":"VariableDeclaration","scope":78578,"src":"9279:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78545,"name":"uint48","nodeType":"ElementaryTypeName","src":"9279:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78552,"initialValue":{"arguments":[{"id":78550,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78536,"src":"9323:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78547,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78541,"src":"9302:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9304:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"9302:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9314:8:159","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":87398,"src":"9302:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":78551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9302:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9276:56:159"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78553,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78546,"src":"9347:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9363:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9347:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78556,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"9368:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":78557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9373:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"9368:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":78558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9368:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78559,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78546,"src":"9387:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":78560,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78541,"src":"9402:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9404:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"9402:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9387:36:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9368:55:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9347:76:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78569,"nodeType":"IfStatement","src":"9343:144:159","trueBody":{"id":78568,"nodeType":"Block","src":"9425:62:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78565,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76532,"src":"9446:28:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9446:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78567,"nodeType":"RevertStatement","src":"9439:37:159"}]}},{"expression":{"arguments":[{"id":78575,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78536,"src":"9516:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78570,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78541,"src":"9497:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9499:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"9497:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9509:6:159","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":15026,"src":"9497:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":78576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9497:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78577,"nodeType":"ExpressionStatement","src":"9497:28:159"}]},"baseFunctions":[76852],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9179:18:159","parameters":{"id":78537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78536,"mutability":"mutable","name":"operator","nameLocation":"9206:8:159","nodeType":"VariableDeclaration","scope":78579,"src":"9198:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78535,"name":"address","nodeType":"ElementaryTypeName","src":"9198:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9197:18:159"},"returnParameters":{"id":78538,"nodeType":"ParameterList","parameters":[],"src":"9225:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78637,"nodeType":"FunctionDefinition","src":"9538:494:159","nodes":[],"body":{"id":78636,"nodeType":"Block","src":"9645:387:159","nodes":[],"statements":[{"assignments":[78592],"declarations":[{"constant":false,"id":78592,"mutability":"mutable","name":"$","nameLocation":"9671:1:159","nodeType":"VariableDeclaration","scope":78636,"src":"9655:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78591,"nodeType":"UserDefinedTypeName","pathNode":{"id":78590,"name":"Storage","nameLocations":["9655:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"9655:7:159"},"referencedDeclaration":76699,"src":"9655:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78595,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78593,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"9675:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9675:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9655:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78596,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9700:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9704:6:159","memberName":"sender","nodeType":"MemberAccess","src":"9700:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78598,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78592,"src":"9714:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9716:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"9714:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9700:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78605,"nodeType":"IfStatement","src":"9696:71:159","trueBody":{"id":78604,"nodeType":"Block","src":"9724:43:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78601,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76592,"src":"9745:9:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9745:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78603,"nodeType":"RevertStatement","src":"9738:18:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78606,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78581,"src":"9781:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78607,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78592,"src":"9790:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9792:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"9790:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9781:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78614,"nodeType":"IfStatement","src":"9777:78:159","trueBody":{"id":78613,"nodeType":"Block","src":"9804:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78610,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"9825:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9825:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78612,"nodeType":"RevertStatement","src":"9818:26:159"}]}},{"expression":{"arguments":[{"expression":{"id":78621,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78592,"src":"9936:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9938:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"9936:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78623,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78581,"src":"9946:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78624,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78583,"src":"9953:6:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78625,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78585,"src":"9961:4:159","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":78616,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78592,"src":"9889:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9891:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"9889:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9901:15:159","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":86250,"src":"9889:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78615,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74569,"src":"9865:23:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$74569_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":78619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9865:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$74569","typeString":"contract IDefaultOperatorRewards"}},"id":78620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9918:17:159","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":74551,"src":"9865:70:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":78626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9865:101:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78627,"nodeType":"ExpressionStatement","src":"9865:101:159"},{"expression":{"arguments":[{"arguments":[{"id":78631,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78583,"src":"10011:6:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78632,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78585,"src":"10019:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9994:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9998:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"9994:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9994:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":78628,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9984:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":78634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9984:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78589,"id":78635,"nodeType":"Return","src":"9977:48:159"}]},"baseFunctions":[76890],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9547:25:159","parameters":{"id":78586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78581,"mutability":"mutable","name":"token","nameLocation":"9581:5:159","nodeType":"VariableDeclaration","scope":78637,"src":"9573:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78580,"name":"address","nodeType":"ElementaryTypeName","src":"9573:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78583,"mutability":"mutable","name":"amount","nameLocation":"9596:6:159","nodeType":"VariableDeclaration","scope":78637,"src":"9588:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78582,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78585,"mutability":"mutable","name":"root","nameLocation":"9612:4:159","nodeType":"VariableDeclaration","scope":78637,"src":"9604:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78584,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9604:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9572:45:159"},"returnParameters":{"id":78589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78588,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78637,"src":"9636:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9636:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9635:9:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78785,"nodeType":"FunctionDefinition","src":"10038:1224:159","nodes":[],"body":{"id":78784,"nodeType":"Block","src":"10185:1077:159","nodes":[],"statements":[{"assignments":[78649],"declarations":[{"constant":false,"id":78649,"mutability":"mutable","name":"$","nameLocation":"10211:1:159","nodeType":"VariableDeclaration","scope":78784,"src":"10195:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78648,"nodeType":"UserDefinedTypeName","pathNode":{"id":78647,"name":"Storage","nameLocations":["10195:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"10195:7:159"},"referencedDeclaration":76699,"src":"10195:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78652,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78650,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"10215:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10215:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10195:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78653,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10240:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10244:6:159","memberName":"sender","nodeType":"MemberAccess","src":"10240:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78655,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78649,"src":"10254:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10256:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"10254:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10240:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78662,"nodeType":"IfStatement","src":"10236:71:159","trueBody":{"id":78661,"nodeType":"Block","src":"10264:43:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78658,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76592,"src":"10285:9:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10285:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78660,"nodeType":"RevertStatement","src":"10278:18:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78663,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"10321:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10333:5:159","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":86070,"src":"10321:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78665,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78649,"src":"10342:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10344:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"10342:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10321:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78672,"nodeType":"IfStatement","src":"10317:90:159","trueBody":{"id":78671,"nodeType":"Block","src":"10356:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78668,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"10377:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10377:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78670,"nodeType":"RevertStatement","src":"10370:26:159"}]}},{"assignments":[78674],"declarations":[{"constant":false,"id":78674,"mutability":"mutable","name":"distributionBytes","nameLocation":"10430:17:159","nodeType":"VariableDeclaration","scope":78784,"src":"10417:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78673,"name":"bytes","nodeType":"ElementaryTypeName","src":"10417:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78675,"nodeType":"VariableDeclarationStatement","src":"10417:30:159"},{"body":{"id":78767,"nodeType":"Block","src":"10519:615:159","statements":[{"assignments":[78692],"declarations":[{"constant":false,"id":78692,"mutability":"mutable","name":"rewards","nameLocation":"10559:7:159","nodeType":"VariableDeclaration","scope":78767,"src":"10533:33:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86077_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":78691,"nodeType":"UserDefinedTypeName","pathNode":{"id":78690,"name":"Gear.StakerRewards","nameLocations":["10533:4:159","10538:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":86077,"src":"10533:18:159"},"referencedDeclaration":86077,"src":"10533:18:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86077_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":78697,"initialValue":{"baseExpression":{"expression":{"id":78693,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"10569:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10581:12:159","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":86066,"src":"10569:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$86077_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":78696,"indexExpression":{"id":78695,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78677,"src":"10594:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10569:27:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86077_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10533:63:159"},{"condition":{"id":78704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10615:33:159","subExpression":{"arguments":[{"expression":{"id":78701,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78692,"src":"10634:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86077_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10642:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":86074,"src":"10634:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78698,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78649,"src":"10616:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10618:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"10616:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10625:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"10616:17:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":78703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10616:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78709,"nodeType":"IfStatement","src":"10611:99:159","trueBody":{"id":78708,"nodeType":"Block","src":"10650:60:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78705,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76580,"src":"10675:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10675:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78707,"nodeType":"RevertStatement","src":"10668:27:159"}]}},{"assignments":[78711],"declarations":[{"constant":false,"id":78711,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10732:14:159","nodeType":"VariableDeclaration","scope":78767,"src":"10724:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78710,"name":"address","nodeType":"ElementaryTypeName","src":"10724:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78721,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":78717,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78692,"src":"10780:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86077_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10788:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":86074,"src":"10780:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78714,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78649,"src":"10757:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10759:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"10757:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10766:13:159","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":87419,"src":"10757:22:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":78719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10757:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":78713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10749:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78712,"name":"address","nodeType":"ElementaryTypeName","src":"10749:7:159","typeDescriptions":{}}},"id":78720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10749:46:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10724:71:159"},{"assignments":[78723],"declarations":[{"constant":false,"id":78723,"mutability":"mutable","name":"data","nameLocation":"10823:4:159","nodeType":"VariableDeclaration","scope":78767,"src":"10810:17:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78722,"name":"bytes","nodeType":"ElementaryTypeName","src":"10810:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78738,"initialValue":{"arguments":[{"id":78726,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78642,"src":"10841:9:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":78727,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78649,"src":"10852:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10854:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"10852:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":78731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10873:2:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":78730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10867:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":78729,"name":"bytes","nodeType":"ElementaryTypeName","src":"10867:5:159","typeDescriptions":{}}},"id":78732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10867:9:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":78735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10884:2:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":78734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10878:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":78733,"name":"bytes","nodeType":"ElementaryTypeName","src":"10878:5:159","typeDescriptions":{}}},"id":78736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10878:9:159","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":78724,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10830:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10834:6:159","memberName":"encode","nodeType":"MemberAccess","src":"10830:10:159","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10830:58:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10810:78:159"},{"expression":{"arguments":[{"expression":{"id":78743,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78649,"src":"10958:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10960:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"10958:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78745,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"10968:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10980:5:159","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":86070,"src":"10968:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78747,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78692,"src":"10987:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86077_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10995:6:159","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":86076,"src":"10987:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78749,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78723,"src":"11003:4:159","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":78740,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78711,"src":"10924:14:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78739,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"10902:21:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$74763_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":78741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10902:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$74763","typeString":"contract IDefaultStakerRewards"}},"id":78742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10940:17:159","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":74839,"src":"10902:55:159","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":78750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10902:106:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78751,"nodeType":"ExpressionStatement","src":"10902:106:159"},{"expression":{"id":78765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78752,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78674,"src":"11023:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78756,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78674,"src":"11056:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":78759,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78692,"src":"11092:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86077_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":86074,"src":"11092:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78761,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78692,"src":"11107:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86077_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11115:6:159","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":86076,"src":"11107:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78757,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11075:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11079:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11075:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11075:47:159","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":78754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11043:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":78753,"name":"bytes","nodeType":"ElementaryTypeName","src":"11043:5:159","typeDescriptions":{}}},"id":78755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11049:6:159","memberName":"concat","nodeType":"MemberAccess","src":"11043:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11043:80:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11023:100:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78766,"nodeType":"ExpressionStatement","src":"11023:100:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78680,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78677,"src":"10477:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":78681,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"10481:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10493:12:159","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":86066,"src":"10481:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$86077_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":78683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10506:6:159","memberName":"length","nodeType":"MemberAccess","src":"10481:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10477:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78768,"initializationExpression":{"assignments":[78677],"declarations":[{"constant":false,"id":78677,"mutability":"mutable","name":"i","nameLocation":"10470:1:159","nodeType":"VariableDeclaration","scope":78768,"src":"10462:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78676,"name":"uint256","nodeType":"ElementaryTypeName","src":"10462:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78679,"initialValue":{"hexValue":"30","id":78678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10474:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10462:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10514:3:159","subExpression":{"id":78685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78677,"src":"10516:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78687,"nodeType":"ExpressionStatement","src":"10514:3:159"},"nodeType":"ForStatement","src":"10457:677:159"},{"expression":{"arguments":[{"arguments":[{"id":78773,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78674,"src":"11174:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":78776,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"11210:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11222:11:159","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":86068,"src":"11210:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":78778,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"11235:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11247:5:159","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":86070,"src":"11235:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":78774,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11193:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11197:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11193:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11193:60:159","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":78771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11161:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":78770,"name":"bytes","nodeType":"ElementaryTypeName","src":"11161:5:159","typeDescriptions":{}}},"id":78772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11167:6:159","memberName":"concat","nodeType":"MemberAccess","src":"11161:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11161:93:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":78769,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11151:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":78782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11151:104:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78646,"id":78783,"nodeType":"Return","src":"11144:111:159"}]},"baseFunctions":[76901],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10047:23:159","parameters":{"id":78643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78640,"mutability":"mutable","name":"_commitment","nameLocation":"10107:11:159","nodeType":"VariableDeclaration","scope":78785,"src":"10071:47:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":78639,"nodeType":"UserDefinedTypeName","pathNode":{"id":78638,"name":"Gear.StakerRewardsCommitment","nameLocations":["10071:4:159","10076:23:159"],"nodeType":"IdentifierPath","referencedDeclaration":86071,"src":"10071:28:159"},"referencedDeclaration":86071,"src":"10071:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":78642,"mutability":"mutable","name":"timestamp","nameLocation":"10127:9:159","nodeType":"VariableDeclaration","scope":78785,"src":"10120:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78641,"name":"uint48","nodeType":"ElementaryTypeName","src":"10120:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10070:67:159"},"returnParameters":{"id":78646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78785,"src":"10172:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10172:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10171:9:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78816,"nodeType":"FunctionDefinition","src":"11268:236:159","nodes":[],"body":{"id":78815,"nodeType":"Block","src":"11353:151:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":78796,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78787,"src":"11378:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78795,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79892,"src":"11363:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11363:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78798,"nodeType":"ExpressionStatement","src":"11363:22:159"},{"expression":{"arguments":[{"id":78800,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78787,"src":"11418:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78801,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78789,"src":"11426:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":78799,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79939,"src":"11395:22:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":78802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11395:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78803,"nodeType":"ExpressionStatement","src":"11395:40:159"},{"expression":{"arguments":[{"id":78808,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78787,"src":"11471:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":78811,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78789,"src":"11487:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11479:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":78809,"name":"uint160","nodeType":"ElementaryTypeName","src":"11479:7:159","typeDescriptions":{}}},"id":78812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11479:17:159","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":78804,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"11446:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11446:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11457:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"11446:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11464:6:159","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":87245,"src":"11446:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":78813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11446:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78814,"nodeType":"ExpressionStatement","src":"11446:51:159"}]},"baseFunctions":[76860],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78792,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78787,"src":"11345:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78793,"kind":"modifierInvocation","modifierName":{"id":78791,"name":"vaultOwner","nameLocations":["11334:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":80055,"src":"11334:10:159"},"nodeType":"ModifierInvocation","src":"11334:18:159"}],"name":"registerVault","nameLocation":"11277:13:159","parameters":{"id":78790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78787,"mutability":"mutable","name":"_vault","nameLocation":"11299:6:159","nodeType":"VariableDeclaration","scope":78816,"src":"11291:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78786,"name":"address","nodeType":"ElementaryTypeName","src":"11291:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78789,"mutability":"mutable","name":"_rewards","nameLocation":"11315:8:159","nodeType":"VariableDeclaration","scope":78816,"src":"11307:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78788,"name":"address","nodeType":"ElementaryTypeName","src":"11307:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11290:34:159"},"returnParameters":{"id":78794,"nodeType":"ParameterList","parameters":[],"src":"11353:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78832,"nodeType":"FunctionDefinition","src":"11510:113:159","nodes":[],"body":{"id":78831,"nodeType":"Block","src":"11574:49:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":78828,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78818,"src":"11610:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78824,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"11584:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11595:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"11584:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11602:7:159","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":87339,"src":"11584:25:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":78829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78830,"nodeType":"ExpressionStatement","src":"11584:32:159"}]},"baseFunctions":[76872],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78821,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78818,"src":"11567:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78822,"kind":"modifierInvocation","modifierName":{"id":78820,"name":"vaultOwner","nameLocations":["11556:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":80055,"src":"11556:10:159"},"nodeType":"ModifierInvocation","src":"11556:17:159"}],"name":"disableVault","nameLocation":"11519:12:159","parameters":{"id":78819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78818,"mutability":"mutable","name":"vault","nameLocation":"11540:5:159","nodeType":"VariableDeclaration","scope":78832,"src":"11532:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78817,"name":"address","nodeType":"ElementaryTypeName","src":"11532:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11531:15:159"},"returnParameters":{"id":78823,"nodeType":"ParameterList","parameters":[],"src":"11574:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78848,"nodeType":"FunctionDefinition","src":"11629:111:159","nodes":[],"body":{"id":78847,"nodeType":"Block","src":"11692:48:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":78844,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78834,"src":"11727:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78840,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"11702:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11702:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11713:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"11702:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11720:6:159","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":87292,"src":"11702:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":78845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11702:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78846,"nodeType":"ExpressionStatement","src":"11702:31:159"}]},"baseFunctions":[76878],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78837,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78834,"src":"11685:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78838,"kind":"modifierInvocation","modifierName":{"id":78836,"name":"vaultOwner","nameLocations":["11674:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":80055,"src":"11674:10:159"},"nodeType":"ModifierInvocation","src":"11674:17:159"}],"name":"enableVault","nameLocation":"11638:11:159","parameters":{"id":78835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78834,"mutability":"mutable","name":"vault","nameLocation":"11658:5:159","nodeType":"VariableDeclaration","scope":78848,"src":"11650:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78833,"name":"address","nodeType":"ElementaryTypeName","src":"11650:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11649:15:159"},"returnParameters":{"id":78839,"nodeType":"ParameterList","parameters":[],"src":"11692:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78896,"nodeType":"FunctionDefinition","src":"11746:355:159","nodes":[],"body":{"id":78895,"nodeType":"Block","src":"11813:288:159","nodes":[],"statements":[{"assignments":[78858],"declarations":[{"constant":false,"id":78858,"mutability":"mutable","name":"$","nameLocation":"11839:1:159","nodeType":"VariableDeclaration","scope":78895,"src":"11823:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78857,"nodeType":"UserDefinedTypeName","pathNode":{"id":78856,"name":"Storage","nameLocations":["11823:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"11823:7:159"},"referencedDeclaration":76699,"src":"11823:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78861,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78859,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"11843:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11823:30:159"},{"assignments":[null,78863],"declarations":[null,{"constant":false,"id":78863,"mutability":"mutable","name":"disabledTime","nameLocation":"11873:12:159","nodeType":"VariableDeclaration","scope":78895,"src":"11866:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78862,"name":"uint48","nodeType":"ElementaryTypeName","src":"11866:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78869,"initialValue":{"arguments":[{"id":78867,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78850,"src":"11907:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78864,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78858,"src":"11889:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11891:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"11889:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11898:8:159","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":87398,"src":"11889:17:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":78868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11889:24:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11863:50:159"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78870,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78863,"src":"11928:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11944:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11928:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78873,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"11949:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":78874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11954:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"11949:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":78875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11949:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78876,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78863,"src":"11968:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":78877,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78858,"src":"11983:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11985:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"11983:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"11968:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"11949:52:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11928:73:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78886,"nodeType":"IfStatement","src":"11924:138:159","trueBody":{"id":78885,"nodeType":"Block","src":"12003:59:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78882,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76535,"src":"12024:25:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12024:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78884,"nodeType":"RevertStatement","src":"12017:34:159"}]}},{"expression":{"arguments":[{"id":78892,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78850,"src":"12088:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78887,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78858,"src":"12072:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12074:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"12072:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12081:6:159","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":15026,"src":"12072:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":78893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12072:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78894,"nodeType":"ExpressionStatement","src":"12072:22:159"}]},"baseFunctions":[76866],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78853,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78850,"src":"11806:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78854,"kind":"modifierInvocation","modifierName":{"id":78852,"name":"vaultOwner","nameLocations":["11795:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":80055,"src":"11795:10:159"},"nodeType":"ModifierInvocation","src":"11795:17:159"}],"name":"unregisterVault","nameLocation":"11755:15:159","parameters":{"id":78851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78850,"mutability":"mutable","name":"vault","nameLocation":"11779:5:159","nodeType":"VariableDeclaration","scope":78896,"src":"11771:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78849,"name":"address","nodeType":"ElementaryTypeName","src":"11771:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11770:15:159"},"returnParameters":{"id":78855,"nodeType":"ParameterList","parameters":[],"src":"11813:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79092,"nodeType":"FunctionDefinition","src":"12107:1642:159","nodes":[],"body":{"id":79091,"nodeType":"Block","src":"12206:1543:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78907,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78900,"src":"12224:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12240:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12224:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78910,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76607,"src":"12243:34:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78906,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12216:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12216:64:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78913,"nodeType":"ExpressionStatement","src":"12216:64:159"},{"assignments":[78918,78921],"declarations":[{"constant":false,"id":78918,"mutability":"mutable","name":"activeOperators","nameLocation":"12309:15:159","nodeType":"VariableDeclaration","scope":79091,"src":"12292:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78916,"name":"address","nodeType":"ElementaryTypeName","src":"12292:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78917,"nodeType":"ArrayTypeName","src":"12292:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":78921,"mutability":"mutable","name":"stakes","nameLocation":"12343:6:159","nodeType":"VariableDeclaration","scope":79091,"src":"12326:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":78919,"name":"uint256","nodeType":"ElementaryTypeName","src":"12326:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78920,"nodeType":"ArrayTypeName","src":"12326:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":78925,"initialValue":{"arguments":[{"id":78923,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78898,"src":"12379:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":78922,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79235,"src":"12353:25:159","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":78924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12353:29:159","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":"12291:91:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78926,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"12397:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12413:6:159","memberName":"length","nodeType":"MemberAccess","src":"12397:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":78928,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78900,"src":"12423:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12397:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78933,"nodeType":"IfStatement","src":"12393:92:159","trueBody":{"id":78932,"nodeType":"Block","src":"12438:47:159","statements":[{"expression":{"id":78930,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"12459:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":78905,"id":78931,"nodeType":"Return","src":"12452:22:159"}]}},{"assignments":[78935],"declarations":[{"constant":false,"id":78935,"mutability":"mutable","name":"n","nameLocation":"12537:1:159","nodeType":"VariableDeclaration","scope":79091,"src":"12529:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78934,"name":"uint256","nodeType":"ElementaryTypeName","src":"12529:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78938,"initialValue":{"expression":{"id":78936,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"12541:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12557:6:159","memberName":"length","nodeType":"MemberAccess","src":"12541:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12529:34:159"},{"body":{"id":79016,"nodeType":"Block","src":"12605:336:159","statements":[{"body":{"id":79014,"nodeType":"Block","src":"12659:272:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":78963,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78921,"src":"12681:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78965,"indexExpression":{"id":78964,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12688:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12681:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":78966,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78921,"src":"12693:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78970,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78967,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12700:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12704:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12700:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12693:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12681:25:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79013,"nodeType":"IfStatement","src":"12677:240:159","trueBody":{"id":79012,"nodeType":"Block","src":"12708:209:159","statements":[{"expression":{"id":78990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":78972,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78921,"src":"12731:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78974,"indexExpression":{"id":78973,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12738:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12731:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":78975,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78921,"src":"12742:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78979,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78976,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12749:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12753:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12749:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12742:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":78980,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12730:26:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":78981,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78921,"src":"12760:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78985,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78982,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12767:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12771:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12767:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12760:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":78986,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78921,"src":"12775:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78988,"indexExpression":{"id":78987,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12782:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12775:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":78989,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12759:26:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12730:55:159","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78991,"nodeType":"ExpressionStatement","src":"12730:55:159"},{"expression":{"id":79010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":78992,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"12808:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78994,"indexExpression":{"id":78993,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12824:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12808:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":78995,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"12828:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78999,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78996,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12844:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12848:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12844:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12828:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":79000,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12807:44:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":79001,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"12855:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79005,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79002,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12871:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":79003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12875:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12871:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12855:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":79006,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"12879:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79008,"indexExpression":{"id":79007,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12895:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12879:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":79009,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12854:44:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12807:91:159","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79011,"nodeType":"ExpressionStatement","src":"12807:91:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78953,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12639:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78954,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78935,"src":"12643:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":78955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12647:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12643:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78957,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78940,"src":"12651:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12643:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12639:13:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79015,"initializationExpression":{"assignments":[78950],"declarations":[{"constant":false,"id":78950,"mutability":"mutable","name":"j","nameLocation":"12632:1:159","nodeType":"VariableDeclaration","scope":79015,"src":"12624:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78949,"name":"uint256","nodeType":"ElementaryTypeName","src":"12624:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78952,"initialValue":{"hexValue":"30","id":78951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12636:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12624:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:159","subExpression":{"id":78960,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78950,"src":"12654:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78962,"nodeType":"ExpressionStatement","src":"12654:3:159"},"nodeType":"ForStatement","src":"12619:312:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78940,"src":"12593:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78944,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78935,"src":"12597:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12593:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79017,"initializationExpression":{"assignments":[78940],"declarations":[{"constant":false,"id":78940,"mutability":"mutable","name":"i","nameLocation":"12586:1:159","nodeType":"VariableDeclaration","scope":79017,"src":"12578:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78939,"name":"uint256","nodeType":"ElementaryTypeName","src":"12578:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78942,"initialValue":{"hexValue":"30","id":78941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12590:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12578:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12600:3:159","subExpression":{"id":78946,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78940,"src":"12600:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78948,"nodeType":"ExpressionStatement","src":"12600:3:159"},"nodeType":"ForStatement","src":"12573:368:159"},{"assignments":[79019],"declarations":[{"constant":false,"id":79019,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13016:14:159","nodeType":"VariableDeclaration","scope":79091,"src":"13008:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79018,"name":"uint256","nodeType":"ElementaryTypeName","src":"13008:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79021,"initialValue":{"hexValue":"31","id":79020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13033:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13008:26:159"},{"assignments":[79023],"declarations":[{"constant":false,"id":79023,"mutability":"mutable","name":"lastStake","nameLocation":"13052:9:159","nodeType":"VariableDeclaration","scope":79091,"src":"13044:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79022,"name":"uint256","nodeType":"ElementaryTypeName","src":"13044:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79029,"initialValue":{"baseExpression":{"id":79024,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78921,"src":"13064:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":79028,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79025,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78900,"src":"13071:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":79026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13087:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13071:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13064:25:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13044:45:159"},{"body":{"id":79053,"nodeType":"Block","src":"13164:123:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":79041,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78921,"src":"13182:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":79043,"indexExpression":{"id":79042,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79031,"src":"13189:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13182:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":79044,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79023,"src":"13195:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13182:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79048,"nodeType":"IfStatement","src":"13178:66:159","trueBody":{"id":79047,"nodeType":"Block","src":"13206:38:159","statements":[{"id":79046,"nodeType":"Break","src":"13224:5:159"}]}},{"expression":{"id":79051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79049,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79019,"src":"13257:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":79050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13275:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13257:19:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79052,"nodeType":"ExpressionStatement","src":"13257:19:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79031,"src":"13131:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79035,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"13135:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13151:6:159","memberName":"length","nodeType":"MemberAccess","src":"13135:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13131:26:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79054,"initializationExpression":{"assignments":[79031],"declarations":[{"constant":false,"id":79031,"mutability":"mutable","name":"i","nameLocation":"13112:1:159","nodeType":"VariableDeclaration","scope":79054,"src":"13104:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79030,"name":"uint256","nodeType":"ElementaryTypeName","src":"13104:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79033,"initialValue":{"id":79032,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78900,"src":"13116:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13104:25:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13159:3:159","subExpression":{"id":79038,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79031,"src":"13159:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79040,"nodeType":"ExpressionStatement","src":"13159:3:159"},"nodeType":"ForStatement","src":"13099:188:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79055,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79019,"src":"13301:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":79056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13318:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13301:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79087,"nodeType":"IfStatement","src":"13297:316:159","trueBody":{"id":79086,"nodeType":"Block","src":"13321:292:159","statements":[{"assignments":[79059],"declarations":[{"constant":false,"id":79059,"mutability":"mutable","name":"randomIndex","nameLocation":"13432:11:159","nodeType":"VariableDeclaration","scope":79086,"src":"13424:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79058,"name":"uint256","nodeType":"ElementaryTypeName","src":"13424:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79071,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":79065,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78898,"src":"13481:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":79063,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13464:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":79064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13468:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"13464:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":79066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13464:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":79062,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13454:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":79067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13454:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13446:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":79060,"name":"uint256","nodeType":"ElementaryTypeName","src":"13446:7:159","typeDescriptions":{}}},"id":79068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13446:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":79069,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79019,"src":"13489:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13446:57:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13424:79:159"},{"expression":{"id":79084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79072,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"13517:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79076,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79073,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78900,"src":"13533:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":79074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13549:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13533:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13517:34:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":79077,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"13554:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79083,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79078,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78900,"src":"13570:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":79079,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79059,"src":"13586:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13570:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":79081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13600:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13570:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13554:48:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13517:85:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79085,"nodeType":"ExpressionStatement","src":"13517:85:159"}]}},{"AST":{"nativeSrc":"13648:62:159","nodeType":"YulBlock","src":"13648:62:159","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13669:15:159","nodeType":"YulIdentifier","src":"13669:15:159"},{"name":"maxValidators","nativeSrc":"13686:13:159","nodeType":"YulIdentifier","src":"13686:13:159"}],"functionName":{"name":"mstore","nativeSrc":"13662:6:159","nodeType":"YulIdentifier","src":"13662:6:159"},"nativeSrc":"13662:38:159","nodeType":"YulFunctionCall","src":"13662:38:159"},"nativeSrc":"13662:38:159","nodeType":"YulExpressionStatement","src":"13662:38:159"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78918,"isOffset":false,"isSlot":false,"src":"13669:15:159","valueSize":1},{"declaration":78900,"isOffset":false,"isSlot":false,"src":"13686:13:159","valueSize":1}],"flags":["memory-safe"],"id":79088,"nodeType":"InlineAssembly","src":"13623:87:159"},{"expression":{"id":79089,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78918,"src":"13727:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":78905,"id":79090,"nodeType":"Return","src":"13720:22:159"}]},"baseFunctions":[76810],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12116:14:159","parameters":{"id":78901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78898,"mutability":"mutable","name":"ts","nameLocation":"12138:2:159","nodeType":"VariableDeclaration","scope":79092,"src":"12131:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78897,"name":"uint48","nodeType":"ElementaryTypeName","src":"12131:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78900,"mutability":"mutable","name":"maxValidators","nameLocation":"12150:13:159","nodeType":"VariableDeclaration","scope":79092,"src":"12142:21:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78899,"name":"uint256","nodeType":"ElementaryTypeName","src":"12142:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12130:34:159"},"returnParameters":{"id":78905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79092,"src":"12188:16:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78902,"name":"address","nodeType":"ElementaryTypeName","src":"12188:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78903,"nodeType":"ArrayTypeName","src":"12188:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12187:18:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79133,"nodeType":"FunctionDefinition","src":"13755:372:159","nodes":[],"body":{"id":79132,"nodeType":"Block","src":"13869:258:159","nodes":[],"statements":[{"assignments":[79105,79107],"declarations":[{"constant":false,"id":79105,"mutability":"mutable","name":"enabledTime","nameLocation":"13887:11:159","nodeType":"VariableDeclaration","scope":79132,"src":"13880:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79104,"name":"uint48","nodeType":"ElementaryTypeName","src":"13880:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79107,"mutability":"mutable","name":"disabledTime","nameLocation":"13907:12:159","nodeType":"VariableDeclaration","scope":79132,"src":"13900:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79106,"name":"uint48","nodeType":"ElementaryTypeName","src":"13900:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79114,"initialValue":{"arguments":[{"id":79112,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79094,"src":"13953:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79108,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"13923:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_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":"13923:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13934:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"13923:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13944:8:159","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":87398,"src":"13923:29:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":79113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13923:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13879:83:159"},{"condition":{"id":79120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13976:44:159","subExpression":{"arguments":[{"id":79116,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79105,"src":"13990:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79117,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79107,"src":"14003:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79118,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79096,"src":"14017:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79115,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79520,"src":"13977:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":79119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79124,"nodeType":"IfStatement","src":"13972:83:159","trueBody":{"id":79123,"nodeType":"Block","src":"14022:33:159","statements":[{"expression":{"hexValue":"30","id":79121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14043:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":79103,"id":79122,"nodeType":"Return","src":"14036:8:159"}]}},{"expression":{"id":79130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79125,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79102,"src":"14065:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79127,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79094,"src":"14107:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79128,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79096,"src":"14117:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79126,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79491,"src":"14073:33:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":79129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14073:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14065:55:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79131,"nodeType":"ExpressionStatement","src":"14065:55:159"}]},"baseFunctions":[76820],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":79099,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79096,"src":"13841:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":79100,"kind":"modifierInvocation","modifierName":{"id":79098,"name":"validTimestamp","nameLocations":["13826:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":79949,"src":"13826:14:159"},"nodeType":"ModifierInvocation","src":"13826:18:159"}],"name":"getOperatorStakeAt","nameLocation":"13764:18:159","parameters":{"id":79097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79094,"mutability":"mutable","name":"operator","nameLocation":"13791:8:159","nodeType":"VariableDeclaration","scope":79133,"src":"13783:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79093,"name":"address","nodeType":"ElementaryTypeName","src":"13783:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79096,"mutability":"mutable","name":"ts","nameLocation":"13808:2:159","nodeType":"VariableDeclaration","scope":79133,"src":"13801:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79095,"name":"uint48","nodeType":"ElementaryTypeName","src":"13801:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13782:29:159"},"returnParameters":{"id":79103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79102,"mutability":"mutable","name":"stake","nameLocation":"13862:5:159","nodeType":"VariableDeclaration","scope":79133,"src":"13854:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79101,"name":"uint256","nodeType":"ElementaryTypeName","src":"13854:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13853:15:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79235,"nodeType":"FunctionDefinition","src":"14170:940:159","nodes":[],"body":{"id":79234,"nodeType":"Block","src":"14351:759:159","nodes":[],"statements":[{"assignments":[79149],"declarations":[{"constant":false,"id":79149,"mutability":"mutable","name":"$","nameLocation":"14377:1:159","nodeType":"VariableDeclaration","scope":79234,"src":"14361:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79148,"nodeType":"UserDefinedTypeName","pathNode":{"id":79147,"name":"Storage","nameLocations":["14361:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"14361:7:159"},"referencedDeclaration":76699,"src":"14361:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79152,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79150,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"14381:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14381:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14361:30:159"},{"expression":{"id":79162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79153,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79142,"src":"14401:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":79157,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79149,"src":"14433:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14435:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"14433:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14445:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"14433:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":79160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14433:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14419:13:159","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":79154,"name":"address","nodeType":"ElementaryTypeName","src":"14423:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79155,"nodeType":"ArrayTypeName","src":"14423:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":79161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14419:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14401:53:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79163,"nodeType":"ExpressionStatement","src":"14401:53:159"},{"expression":{"id":79173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79164,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79145,"src":"14464:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":79168,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79149,"src":"14487:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14489:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"14487:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14499:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"14487:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":79171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14487:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14473:13:159","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":79165,"name":"uint256","nodeType":"ElementaryTypeName","src":"14477:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79166,"nodeType":"ArrayTypeName","src":"14477:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":79172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14464:44:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":79174,"nodeType":"ExpressionStatement","src":"14464:44:159"},{"assignments":[79176],"declarations":[{"constant":false,"id":79176,"mutability":"mutable","name":"operatorIdx","nameLocation":"14527:11:159","nodeType":"VariableDeclaration","scope":79234,"src":"14519:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79175,"name":"uint256","nodeType":"ElementaryTypeName","src":"14519:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79178,"initialValue":{"hexValue":"30","id":79177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14541:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14519:23:159"},{"body":{"id":79231,"nodeType":"Block","src":"14600:369:159","statements":[{"assignments":[79192,79194,79196],"declarations":[{"constant":false,"id":79192,"mutability":"mutable","name":"operator","nameLocation":"14623:8:159","nodeType":"VariableDeclaration","scope":79231,"src":"14615:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79191,"name":"address","nodeType":"ElementaryTypeName","src":"14615:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79194,"mutability":"mutable","name":"enabled","nameLocation":"14640:7:159","nodeType":"VariableDeclaration","scope":79231,"src":"14633:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79193,"name":"uint48","nodeType":"ElementaryTypeName","src":"14633:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79196,"mutability":"mutable","name":"disabled","nameLocation":"14656:8:159","nodeType":"VariableDeclaration","scope":79231,"src":"14649:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79195,"name":"uint48","nodeType":"ElementaryTypeName","src":"14649:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79202,"initialValue":{"arguments":[{"id":79200,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79180,"src":"14692:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":79197,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79149,"src":"14668:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14670:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"14668:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14680:11:159","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":87374,"src":"14668:23:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":79201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14668:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14614:80:159"},{"condition":{"id":79208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14713:36:159","subExpression":{"arguments":[{"id":79204,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79194,"src":"14727:7:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79205,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79196,"src":"14736:8:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79206,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79135,"src":"14746:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79203,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79520,"src":"14714:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":79207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14714:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79211,"nodeType":"IfStatement","src":"14709:83:159","trueBody":{"id":79210,"nodeType":"Block","src":"14751:41:159","statements":[{"id":79209,"nodeType":"Continue","src":"14769:8:159"}]}},{"expression":{"id":79216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79212,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79142,"src":"14806:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79214,"indexExpression":{"id":79213,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"14822:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14806:28:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79215,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79192,"src":"14837:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14806:39:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79217,"nodeType":"ExpressionStatement","src":"14806:39:159"},{"expression":{"id":79225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79218,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79145,"src":"14859:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":79220,"indexExpression":{"id":79219,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"14866:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14859:19:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79222,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79192,"src":"14915:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79223,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79135,"src":"14925:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79221,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79491,"src":"14881:33:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":79224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14881:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14859:69:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79226,"nodeType":"ExpressionStatement","src":"14859:69:159"},{"expression":{"id":79229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79227,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"14942:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":79228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14957:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14942:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79230,"nodeType":"ExpressionStatement","src":"14942:16:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79182,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79180,"src":"14569:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":79183,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79149,"src":"14573:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14575:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"14573:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14585:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"14573:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":79186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14573:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14569:24:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79232,"initializationExpression":{"assignments":[79180],"declarations":[{"constant":false,"id":79180,"mutability":"mutable","name":"i","nameLocation":"14566:1:159","nodeType":"VariableDeclaration","scope":79232,"src":"14558:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79179,"name":"uint256","nodeType":"ElementaryTypeName","src":"14558:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79181,"nodeType":"VariableDeclarationStatement","src":"14558:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14595:3:159","subExpression":{"id":79188,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79180,"src":"14597:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79190,"nodeType":"ExpressionStatement","src":"14595:3:159"},"nodeType":"ForStatement","src":"14553:416:159"},{"AST":{"nativeSrc":"15004:100:159","nodeType":"YulBlock","src":"15004:100:159","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15025:15:159","nodeType":"YulIdentifier","src":"15025:15:159"},{"name":"operatorIdx","nativeSrc":"15042:11:159","nodeType":"YulIdentifier","src":"15042:11:159"}],"functionName":{"name":"mstore","nativeSrc":"15018:6:159","nodeType":"YulIdentifier","src":"15018:6:159"},"nativeSrc":"15018:36:159","nodeType":"YulFunctionCall","src":"15018:36:159"},"nativeSrc":"15018:36:159","nodeType":"YulExpressionStatement","src":"15018:36:159"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15074:6:159","nodeType":"YulIdentifier","src":"15074:6:159"},{"name":"operatorIdx","nativeSrc":"15082:11:159","nodeType":"YulIdentifier","src":"15082:11:159"}],"functionName":{"name":"mstore","nativeSrc":"15067:6:159","nodeType":"YulIdentifier","src":"15067:6:159"},"nativeSrc":"15067:27:159","nodeType":"YulFunctionCall","src":"15067:27:159"},"nativeSrc":"15067:27:159","nodeType":"YulExpressionStatement","src":"15067:27:159"}]},"evmVersion":"osaka","externalReferences":[{"declaration":79142,"isOffset":false,"isSlot":false,"src":"15025:15:159","valueSize":1},{"declaration":79176,"isOffset":false,"isSlot":false,"src":"15042:11:159","valueSize":1},{"declaration":79176,"isOffset":false,"isSlot":false,"src":"15082:11:159","valueSize":1},{"declaration":79145,"isOffset":false,"isSlot":false,"src":"15074:6:159","valueSize":1}],"flags":["memory-safe"],"id":79233,"nodeType":"InlineAssembly","src":"14979:125:159"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":79138,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79135,"src":"14267:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":79139,"kind":"modifierInvocation","modifierName":{"id":79137,"name":"validTimestamp","nameLocations":["14252:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":79949,"src":"14252:14:159"},"nodeType":"ModifierInvocation","src":"14252:18:159"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14179:25:159","parameters":{"id":79136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79135,"mutability":"mutable","name":"ts","nameLocation":"14212:2:159","nodeType":"VariableDeclaration","scope":79235,"src":"14205:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79134,"name":"uint48","nodeType":"ElementaryTypeName","src":"14205:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14204:11:159"},"returnParameters":{"id":79146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79142,"mutability":"mutable","name":"activeOperators","nameLocation":"14305:15:159","nodeType":"VariableDeclaration","scope":79235,"src":"14288:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79140,"name":"address","nodeType":"ElementaryTypeName","src":"14288:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79141,"nodeType":"ArrayTypeName","src":"14288:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":79145,"mutability":"mutable","name":"stakes","nameLocation":"14339:6:159","nodeType":"VariableDeclaration","scope":79235,"src":"14322:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":79143,"name":"uint256","nodeType":"ElementaryTypeName","src":"14322:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79144,"nodeType":"ArrayTypeName","src":"14322:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14287:59:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79351,"nodeType":"FunctionDefinition","src":"15116:952:159","nodes":[],"body":{"id":79350,"nodeType":"Block","src":"15174:894:159","nodes":[],"statements":[{"assignments":[79244],"declarations":[{"constant":false,"id":79244,"mutability":"mutable","name":"$","nameLocation":"15200:1:159","nodeType":"VariableDeclaration","scope":79350,"src":"15184:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79243,"nodeType":"UserDefinedTypeName","pathNode":{"id":79242,"name":"Storage","nameLocations":["15184:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"15184:7:159"},"referencedDeclaration":76699,"src":"15184:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79247,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79245,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"15204:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15204:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15184:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79248,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15229:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15233:6:159","memberName":"sender","nodeType":"MemberAccess","src":"15229:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":79250,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79244,"src":"15243:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15245:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"15243:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15255:18:159","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":86252,"src":"15243:30:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15229:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79258,"nodeType":"IfStatement","src":"15225:101:159","trueBody":{"id":79257,"nodeType":"Block","src":"15275:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79254,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76595,"src":"15296:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15296:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79256,"nodeType":"RevertStatement","src":"15289:26:159"}]}},{"body":{"id":79348,"nodeType":"Block","src":"15374:688:159","statements":[{"assignments":[79271],"declarations":[{"constant":false,"id":79271,"mutability":"mutable","name":"slashData","nameLocation":"15407:9:159","nodeType":"VariableDeclaration","scope":79348,"src":"15388:28:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":79270,"nodeType":"UserDefinedTypeName","pathNode":{"id":79269,"name":"SlashData","nameLocations":["15388:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":76713,"src":"15388:9:159"},"referencedDeclaration":76713,"src":"15388:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":79275,"initialValue":{"baseExpression":{"id":79272,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79239,"src":"15419:4:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":79274,"indexExpression":{"id":79273,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79260,"src":"15424:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15419:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15388:38:159"},{"condition":{"id":79282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15444:41:159","subExpression":{"arguments":[{"expression":{"id":79279,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79271,"src":"15466:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15476:8:159","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":76706,"src":"15466:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":79276,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79244,"src":"15445:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15447:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"15445:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15457:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"15445:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":79281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15445:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79287,"nodeType":"IfStatement","src":"15440:110:159","trueBody":{"id":79286,"nodeType":"Block","src":"15487:63:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79283,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76583,"src":"15512:21:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15512:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79285,"nodeType":"RevertStatement","src":"15505:30:159"}]}},{"body":{"id":79346,"nodeType":"Block","src":"15614:438:159","statements":[{"assignments":[79301],"declarations":[{"constant":false,"id":79301,"mutability":"mutable","name":"vaultData","nameLocation":"15656:9:159","nodeType":"VariableDeclaration","scope":79346,"src":"15632:33:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":79300,"nodeType":"UserDefinedTypeName","pathNode":{"id":79299,"name":"VaultSlashData","nameLocations":["15632:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":76704,"src":"15632:14:159"},"referencedDeclaration":76704,"src":"15632:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":79306,"initialValue":{"baseExpression":{"expression":{"id":79302,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79271,"src":"15668:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15678:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76712,"src":"15668:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$76704_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":79305,"indexExpression":{"id":79304,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79289,"src":"15685:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15668:19:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15632:55:159"},{"condition":{"id":79313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15710:35:159","subExpression":{"arguments":[{"expression":{"id":79310,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79301,"src":"15729:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":79311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15739:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":76701,"src":"15729:15:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":79307,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79244,"src":"15711:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15713:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"15711:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15720:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"15711:17:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":79312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15711:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79318,"nodeType":"IfStatement","src":"15706:109:159","trueBody":{"id":79317,"nodeType":"Block","src":"15747:68:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79314,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76580,"src":"15776:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15776:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79316,"nodeType":"RevertStatement","src":"15769:27:159"}]}},{"assignments":[79320],"declarations":[{"constant":false,"id":79320,"mutability":"mutable","name":"slasher","nameLocation":"15841:7:159","nodeType":"VariableDeclaration","scope":79346,"src":"15833:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79319,"name":"address","nodeType":"ElementaryTypeName","src":"15833:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79327,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":79322,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79301,"src":"15858:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":79323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15868:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":76701,"src":"15858:15:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79321,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"15851:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15851:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15875:7:159","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":70306,"src":"15851:31:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15851:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15833:51:159"},{"expression":{"arguments":[{"expression":{"id":79332,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79244,"src":"15958:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15960:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"15958:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79334,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79271,"src":"15972:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15982:8:159","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":76706,"src":"15972:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":79336,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79301,"src":"15992:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":79337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16002:6:159","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":76703,"src":"15992:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":79338,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79271,"src":"16010:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16020:2:159","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":76708,"src":"16010:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":79342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16034:1:159","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":79341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16024:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79340,"name":"bytes","nodeType":"ElementaryTypeName","src":"16028:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16024:12:159","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":79329,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79320,"src":"15915:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79328,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"15902:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15902:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15945:12:159","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":69867,"src":"15902:55:159","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":79344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15902:135:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79345,"nodeType":"ExpressionStatement","src":"15902:135:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79291,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79289,"src":"15580:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":79292,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79271,"src":"15584:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15594:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76712,"src":"15584:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$76704_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":79294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15601:6:159","memberName":"length","nodeType":"MemberAccess","src":"15584:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15580:27:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79347,"initializationExpression":{"assignments":[79289],"declarations":[{"constant":false,"id":79289,"mutability":"mutable","name":"j","nameLocation":"15577:1:159","nodeType":"VariableDeclaration","scope":79347,"src":"15569:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79288,"name":"uint256","nodeType":"ElementaryTypeName","src":"15569:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79290,"nodeType":"VariableDeclarationStatement","src":"15569:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15609:3:159","subExpression":{"id":79296,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79289,"src":"15611:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79298,"nodeType":"ExpressionStatement","src":"15609:3:159"},"nodeType":"ForStatement","src":"15564:488:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79262,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79260,"src":"15352:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79263,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79239,"src":"15356:4:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":79264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15361:6:159","memberName":"length","nodeType":"MemberAccess","src":"15356:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15352:15:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79349,"initializationExpression":{"assignments":[79260],"declarations":[{"constant":false,"id":79260,"mutability":"mutable","name":"i","nameLocation":"15349:1:159","nodeType":"VariableDeclaration","scope":79349,"src":"15341:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79259,"name":"uint256","nodeType":"ElementaryTypeName","src":"15341:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79261,"nodeType":"VariableDeclarationStatement","src":"15341:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15369:3:159","subExpression":{"id":79266,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79260,"src":"15371:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79268,"nodeType":"ExpressionStatement","src":"15369:3:159"},"nodeType":"ForStatement","src":"15336:726:159"}]},"baseFunctions":[76827],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15125:12:159","parameters":{"id":79240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79239,"mutability":"mutable","name":"data","nameLocation":"15159:4:159","nodeType":"VariableDeclaration","scope":79351,"src":"15138:25:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":79237,"nodeType":"UserDefinedTypeName","pathNode":{"id":79236,"name":"SlashData","nameLocations":["15138:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":76713,"src":"15138:9:159"},"referencedDeclaration":76713,"src":"15138:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":79238,"nodeType":"ArrayTypeName","src":"15138:11:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15137:27:159"},"returnParameters":{"id":79241,"nodeType":"ParameterList","parameters":[],"src":"15174:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79420,"nodeType":"FunctionDefinition","src":"16074:528:159","nodes":[],"body":{"id":79419,"nodeType":"Block","src":"16141:461:159","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79358,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16155:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16159:6:159","memberName":"sender","nodeType":"MemberAccess","src":"16155:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79360,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"16169:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16169:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16180:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"16169:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16190:17:159","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"16169:38:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16155:52:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79369,"nodeType":"IfStatement","src":"16151:108:159","trueBody":{"id":79368,"nodeType":"Block","src":"16209:50:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79365,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76598,"src":"16230:16:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16230:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79367,"nodeType":"RevertStatement","src":"16223:25:159"}]}},{"body":{"id":79417,"nodeType":"Block","src":"16310:286:159","statements":[{"assignments":[79382],"declarations":[{"constant":false,"id":79382,"mutability":"mutable","name":"slash","nameLocation":"16349:5:159","nodeType":"VariableDeclaration","scope":79417,"src":"16324:30:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":79381,"nodeType":"UserDefinedTypeName","pathNode":{"id":79380,"name":"SlashIdentifier","nameLocations":["16324:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":76718,"src":"16324:15:159"},"referencedDeclaration":76718,"src":"16324:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":79386,"initialValue":{"baseExpression":{"id":79383,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79355,"src":"16357:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":79385,"indexExpression":{"id":79384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79371,"src":"16365:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16357:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16324:43:159"},{"condition":{"id":79394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16386:40:159","subExpression":{"arguments":[{"expression":{"id":79391,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79382,"src":"16414:5:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":79392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16420:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":76715,"src":"16414:11:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79387,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"16387:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16387:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16398:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"16387:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16405:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"16387:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":79393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16387:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79399,"nodeType":"IfStatement","src":"16382:106:159","trueBody":{"id":79398,"nodeType":"Block","src":"16428:60:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79395,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76580,"src":"16453:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79397,"nodeType":"RevertStatement","src":"16446:27:159"}]}},{"expression":{"arguments":[{"expression":{"id":79409,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79382,"src":"16559:5:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":79410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16565:5:159","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":76717,"src":"16559:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":79413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16582:1:159","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":79412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16572:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79411,"name":"bytes","nodeType":"ElementaryTypeName","src":"16576:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16572:12:159","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":79402,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79382,"src":"16522:5:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":79403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16528:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":76715,"src":"16522:11:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79401,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"16515:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16515:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16535:7:159","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":70306,"src":"16515:27:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16515:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79400,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"16502:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16502:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16546:12:159","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":69877,"src":"16502:56:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":79415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16502:83:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79416,"nodeType":"ExpressionStatement","src":"16502:83:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79373,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79371,"src":"16285:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79374,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79355,"src":"16289:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":79375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16297:6:159","memberName":"length","nodeType":"MemberAccess","src":"16289:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16285:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79418,"initializationExpression":{"assignments":[79371],"declarations":[{"constant":false,"id":79371,"mutability":"mutable","name":"i","nameLocation":"16282:1:159","nodeType":"VariableDeclaration","scope":79418,"src":"16274:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79370,"name":"uint256","nodeType":"ElementaryTypeName","src":"16274:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79372,"nodeType":"VariableDeclarationStatement","src":"16274:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16305:3:159","subExpression":{"id":79377,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79371,"src":"16307:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79379,"nodeType":"ExpressionStatement","src":"16305:3:159"},"nodeType":"ForStatement","src":"16269:327:159"}]},"baseFunctions":[76834],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16083:12:159","parameters":{"id":79356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79355,"mutability":"mutable","name":"slashes","nameLocation":"16123:7:159","nodeType":"VariableDeclaration","scope":79420,"src":"16096:34:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":79353,"nodeType":"UserDefinedTypeName","pathNode":{"id":79352,"name":"SlashIdentifier","nameLocations":["16096:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":76718,"src":"16096:15:159"},"referencedDeclaration":76718,"src":"16096:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":79354,"nodeType":"ArrayTypeName","src":"16096:17:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16095:36:159"},"returnParameters":{"id":79357,"nodeType":"ParameterList","parameters":[],"src":"16141:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79491,"nodeType":"FunctionDefinition","src":"16608:556:159","nodes":[],"body":{"id":79490,"nodeType":"Block","src":"16717:447:159","nodes":[],"statements":[{"assignments":[79431],"declarations":[{"constant":false,"id":79431,"mutability":"mutable","name":"$","nameLocation":"16743:1:159","nodeType":"VariableDeclaration","scope":79490,"src":"16727:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79430,"nodeType":"UserDefinedTypeName","pathNode":{"id":79429,"name":"Storage","nameLocations":["16727:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"16727:7:159"},"referencedDeclaration":76699,"src":"16727:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79434,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79432,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"16747:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16747:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16727:30:159"},{"body":{"id":79488,"nodeType":"Block","src":"16811:347:159","statements":[{"assignments":[79448,79450,79452],"declarations":[{"constant":false,"id":79448,"mutability":"mutable","name":"vault","nameLocation":"16834:5:159","nodeType":"VariableDeclaration","scope":79488,"src":"16826:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79447,"name":"address","nodeType":"ElementaryTypeName","src":"16826:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79450,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16848:16:159","nodeType":"VariableDeclaration","scope":79488,"src":"16841:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79449,"name":"uint48","nodeType":"ElementaryTypeName","src":"16841:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79452,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16873:17:159","nodeType":"VariableDeclaration","scope":79488,"src":"16866:24:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79451,"name":"uint48","nodeType":"ElementaryTypeName","src":"16866:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79458,"initialValue":{"arguments":[{"id":79456,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79436,"src":"16915:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":79453,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79431,"src":"16894:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16896:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"16894:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16903:11:159","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":87374,"src":"16894:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":79457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16894:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16825:92:159"},{"condition":{"id":79464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16936:54:159","subExpression":{"arguments":[{"id":79460,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79450,"src":"16950:16:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79461,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79452,"src":"16968:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79462,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79424,"src":"16987:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79459,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79520,"src":"16937:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":79463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16937:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79467,"nodeType":"IfStatement","src":"16932:101:159","trueBody":{"id":79466,"nodeType":"Block","src":"16992:41:159","statements":[{"id":79465,"nodeType":"Continue","src":"17010:8:159"}]}},{"expression":{"id":79486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79468,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79427,"src":"17047:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":79477,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79431,"src":"17106:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17108:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"17106:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79479,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79422,"src":"17120:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79480,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79424,"src":"17130:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":79483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17144:1:159","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":79482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17134:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79481,"name":"bytes","nodeType":"ElementaryTypeName","src":"17138:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:12:159","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":79471,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79448,"src":"17078:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79470,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"17071:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17071:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17085:9:159","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":70294,"src":"17071:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17071:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79469,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"17056:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$68884_$","typeString":"type(contract IBaseDelegator)"}},"id":79475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17056:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"id":79476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17098:7:159","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":68845,"src":"17056:49:159","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":79485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17056:91:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17047:100:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79487,"nodeType":"ExpressionStatement","src":"17047:100:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79438,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79436,"src":"16783:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":79439,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79431,"src":"16787:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16789:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"16787:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16796:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"16787:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":79442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16787:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16783:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79489,"initializationExpression":{"assignments":[79436],"declarations":[{"constant":false,"id":79436,"mutability":"mutable","name":"i","nameLocation":"16780:1:159","nodeType":"VariableDeclaration","scope":79489,"src":"16772:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79435,"name":"uint256","nodeType":"ElementaryTypeName","src":"16772:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79437,"nodeType":"VariableDeclarationStatement","src":"16772:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16806:3:159","subExpression":{"id":79444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79436,"src":"16808:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79446,"nodeType":"ExpressionStatement","src":"16806:3:159"},"nodeType":"ForStatement","src":"16767:391:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16617:33:159","parameters":{"id":79425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79422,"mutability":"mutable","name":"operator","nameLocation":"16659:8:159","nodeType":"VariableDeclaration","scope":79491,"src":"16651:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79421,"name":"address","nodeType":"ElementaryTypeName","src":"16651:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79424,"mutability":"mutable","name":"ts","nameLocation":"16676:2:159","nodeType":"VariableDeclaration","scope":79491,"src":"16669:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79423,"name":"uint48","nodeType":"ElementaryTypeName","src":"16669:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16650:29:159"},"returnParameters":{"id":79428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79427,"mutability":"mutable","name":"stake","nameLocation":"16710:5:159","nodeType":"VariableDeclaration","scope":79491,"src":"16702:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79426,"name":"uint256","nodeType":"ElementaryTypeName","src":"16702:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16701:15:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79520,"nodeType":"FunctionDefinition","src":"17170:208:159","nodes":[],"body":{"id":79519,"nodeType":"Block","src":"17272:106:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":79517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":79508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79502,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79493,"src":"17289:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":79503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17304:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17289:16:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79505,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79493,"src":"17309:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":79506,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79497,"src":"17324:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17309:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17289:37:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":79515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79509,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"17331:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":79510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17347:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17331:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79512,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"17352:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":79513,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79497,"src":"17368:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17352:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17331:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":79516,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17330:41:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17289:82:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":79501,"id":79518,"nodeType":"Return","src":"17282:89:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17179:12:159","parameters":{"id":79498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79493,"mutability":"mutable","name":"enabledTime","nameLocation":"17199:11:159","nodeType":"VariableDeclaration","scope":79520,"src":"17192:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79492,"name":"uint48","nodeType":"ElementaryTypeName","src":"17192:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79495,"mutability":"mutable","name":"disabledTime","nameLocation":"17219:12:159","nodeType":"VariableDeclaration","scope":79520,"src":"17212:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79494,"name":"uint48","nodeType":"ElementaryTypeName","src":"17212:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79497,"mutability":"mutable","name":"ts","nameLocation":"17240:2:159","nodeType":"VariableDeclaration","scope":79520,"src":"17233:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79496,"name":"uint48","nodeType":"ElementaryTypeName","src":"17233:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17191:52:159"},"returnParameters":{"id":79501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79520,"src":"17266:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79499,"name":"bool","nodeType":"ElementaryTypeName","src":"17266:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17265:6:159"},"scope":80076,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":79537,"nodeType":"FunctionDefinition","src":"17423:154:159","nodes":[],"body":{"id":79536,"nodeType":"Block","src":"17479:98:159","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79525,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79522,"src":"17493:4:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17509:1:159","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":79527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17501:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79526,"name":"address","nodeType":"ElementaryTypeName","src":"17501:7:159","typeDescriptions":{}}},"id":79529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17501:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17493:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79535,"nodeType":"IfStatement","src":"17489:82:159","trueBody":{"id":79534,"nodeType":"Block","src":"17513:58:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79531,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76550,"src":"17534:24:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17534:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79533,"nodeType":"RevertStatement","src":"17527:33:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17432:19:159","parameters":{"id":79523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79522,"mutability":"mutable","name":"hook","nameLocation":"17460:4:159","nodeType":"VariableDeclaration","scope":79537,"src":"17452:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79521,"name":"address","nodeType":"ElementaryTypeName","src":"17452:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17451:14:159"},"returnParameters":{"id":79524,"nodeType":"ParameterList","parameters":[],"src":"17479:0:159"},"scope":80076,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":79625,"nodeType":"FunctionDefinition","src":"17583:2002:159","nodes":[],"body":{"id":79624,"nodeType":"Block","src":"17641:1944:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79544,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"17659:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"17659:13:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17675:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17659:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79548,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76610,"src":"17678:32:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17678:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17651:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17651:62:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79551,"nodeType":"ExpressionStatement","src":"17651:62:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79553,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"18048:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18050:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"18048:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":79555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18075:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":79556,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"18079:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18081:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"18079:13:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18075:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18048:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79560,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76613,"src":"18094:36:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18094:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79552,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18040:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18040:93:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79563,"nodeType":"ExpressionStatement","src":"18040:93:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79565,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"18323:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18325:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"18323:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":79567,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"18348:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18350:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"18348:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18323:48:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79570,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76616,"src":"18373:48:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18373:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79564,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18315:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18315:109:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79573,"nodeType":"ExpressionStatement","src":"18315:109:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79575,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"18611:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18613:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"18611:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":79577,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"18633:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18635:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"18633:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18611:45:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79580,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76619,"src":"18658:45:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18658:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79574,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18603:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18603:103:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79583,"nodeType":"ExpressionStatement","src":"18603:103:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79585,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"18786:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18788:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"18786:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18806:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18786:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79589,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76622,"src":"18809:36:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18809:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79584,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18778:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18778:70:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79592,"nodeType":"ExpressionStatement","src":"18778:70:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79594,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"19058:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19060:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"19058:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19085:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19058:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79598,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76625,"src":"19088:43:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19088:45:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19050:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19050:84:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79601,"nodeType":"ExpressionStatement","src":"19050:84:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79603,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"19165:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19167:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"19165:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":79605,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"19185:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19187:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"19185:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19165:44:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":79608,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"19213:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19215:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"19213:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19165:71:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79611,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76628,"src":"19250:40:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19250:42:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79602,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19144:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19144:158:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79614,"nodeType":"ExpressionStatement","src":"19144:158:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79616,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"19507:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19509:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"19507:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":79618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19538:1:159","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19507:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79620,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76631,"src":"19541:34:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19541:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19499:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19499:79:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79623,"nodeType":"ExpressionStatement","src":"19499:79:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17592:16:159","parameters":{"id":79541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79540,"mutability":"mutable","name":"$","nameLocation":"17625:1:159","nodeType":"VariableDeclaration","scope":79625,"src":"17609:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79539,"nodeType":"UserDefinedTypeName","pathNode":{"id":79538,"name":"Storage","nameLocations":["17609:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"17609:7:159"},"referencedDeclaration":76699,"src":"17609:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17608:19:159"},"returnParameters":{"id":79542,"nodeType":"ParameterList","parameters":[],"src":"17641:0:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79892,"nodeType":"FunctionDefinition","src":"19633:2572:159","nodes":[],"body":{"id":79891,"nodeType":"Block","src":"19681:2524:159","nodes":[],"statements":[{"assignments":[79632],"declarations":[{"constant":false,"id":79632,"mutability":"mutable","name":"$","nameLocation":"19707:1:159","nodeType":"VariableDeclaration","scope":79891,"src":"19691:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79631,"nodeType":"UserDefinedTypeName","pathNode":{"id":79630,"name":"Storage","nameLocations":["19691:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"19691:7:159"},"referencedDeclaration":76699,"src":"19691:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79635,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79633,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"19711:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19711:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19691:30:159"},{"condition":{"id":79644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19736:54:159","subExpression":{"arguments":[{"id":79642,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79627,"src":"19783:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":79637,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"19747:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19749:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"19747:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19759:13:159","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":86238,"src":"19747:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79636,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68710,"src":"19737:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$68710_$","typeString":"type(contract IRegistry)"}},"id":79640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19737:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$68710","typeString":"contract IRegistry"}},"id":79641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19774:8:159","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":68695,"src":"19737:45:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":79643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19737:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79649,"nodeType":"IfStatement","src":"19732:109:159","trueBody":{"id":79648,"nodeType":"Block","src":"19792:49:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79645,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76523,"src":"19813:15:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19813:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79647,"nodeType":"RevertStatement","src":"19806:24:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":79657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79651,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79627,"src":"19873:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79650,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68586,"src":"19855:17:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$68586_$","typeString":"type(contract IMigratableEntity)"}},"id":79652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19855:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$68586","typeString":"contract IMigratableEntity"}},"id":79653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19881:7:159","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":68567,"src":"19855:33:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":79654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19855:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":79655,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"19894:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19896:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"19894:25:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19855:64:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79662,"nodeType":"IfStatement","src":"19851:128:159","trueBody":{"id":79661,"nodeType":"Block","src":"19921:58:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79658,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76574,"src":"19942:24:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19942:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79660,"nodeType":"RevertStatement","src":"19935:33:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79664,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79627,"src":"20000:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79663,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"19993:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19993:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20008:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":70282,"src":"19993:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19993:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":79668,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20024:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20026:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"20024:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19993:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79675,"nodeType":"IfStatement","src":"19989:100:159","trueBody":{"id":79674,"nodeType":"Block","src":"20038:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79671,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"20059:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20059:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79673,"nodeType":"RevertStatement","src":"20052:26:159"}]}},{"assignments":[79677],"declarations":[{"constant":false,"id":79677,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20134:18:159","nodeType":"VariableDeclaration","scope":79891,"src":"20127:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79676,"name":"uint48","nodeType":"ElementaryTypeName","src":"20127:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79683,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79679,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79627,"src":"20162:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79678,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20155:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20155:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20170:13:159","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":70324,"src":"20155:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":79682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20155:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20127:58:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79684,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79677,"src":"20199:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79685,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20220:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20222:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"20220:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20199:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79692,"nodeType":"IfStatement","src":"20195:107:159","trueBody":{"id":79691,"nodeType":"Block","src":"20245:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79688,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76526,"src":"20266:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20266:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79690,"nodeType":"RevertStatement","src":"20259:32:159"}]}},{"condition":{"id":79698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20349:40:159","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79694,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79627,"src":"20357:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79693,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20350:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20350:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20365:22:159","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":70300,"src":"20350:37:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":79697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20350:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79703,"nodeType":"IfStatement","src":"20345:103:159","trueBody":{"id":79702,"nodeType":"Block","src":"20391:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79699,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76556,"src":"20412:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20412:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79701,"nodeType":"RevertStatement","src":"20405:32:159"}]}},{"assignments":[79706],"declarations":[{"constant":false,"id":79706,"mutability":"mutable","name":"delegator","nameLocation":"20473:9:159","nodeType":"VariableDeclaration","scope":79891,"src":"20458:24:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"},"typeName":{"id":79705,"nodeType":"UserDefinedTypeName","pathNode":{"id":79704,"name":"IBaseDelegator","nameLocations":["20458:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":68884,"src":"20458:14:159"},"referencedDeclaration":68884,"src":"20458:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":79714,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79709,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79627,"src":"20507:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79708,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20500:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20500:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20515:9:159","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":70294,"src":"20500:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20500:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79707,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"20485:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$68884_$","typeString":"type(contract IBaseDelegator)"}},"id":79713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20485:42:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20458:69:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":79717,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20567:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20569:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"20567:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79715,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79706,"src":"20541:9:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"id":79716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20551:15:159","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":68831,"src":"20541:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":79719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20541:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":79722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20589:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":79721,"name":"uint256","nodeType":"ElementaryTypeName","src":"20589:7:159","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":79720,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20584:4:159","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":79723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20584:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":79724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20598:3:159","memberName":"max","nodeType":"MemberAccess","src":"20584:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20541:60:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79738,"nodeType":"IfStatement","src":"20537:158:159","trueBody":{"id":79737,"nodeType":"Block","src":"20603:92:159","statements":[{"expression":{"arguments":[{"id":79729,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77887,"src":"20646:18:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":79732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20671:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":79731,"name":"uint256","nodeType":"ElementaryTypeName","src":"20671:7:159","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":79730,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20666:4:159","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":79733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":79734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20680:3:159","memberName":"max","nodeType":"MemberAccess","src":"20666:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79726,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79706,"src":"20617:9:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"id":79728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20627:18:159","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":68863,"src":"20617:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":79735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20617:67:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79736,"nodeType":"ExpressionStatement","src":"20617:67:159"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79741,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79706,"src":"20739:9:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}],"id":79740,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"20724:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$68884_$","typeString":"type(contract IBaseDelegator)"}},"id":79742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20724:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"id":79743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20750:4:159","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":68823,"src":"20724:30:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20724:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79739,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79537,"src":"20704:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20704:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79746,"nodeType":"ExpressionStatement","src":"20704:53:159"},{"condition":{"id":79752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20803:38:159","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79748,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79627,"src":"20811:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79747,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20804:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20804:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20819:20:159","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":70312,"src":"20804:35:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":79751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20804:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79757,"nodeType":"IfStatement","src":"20799:99:159","trueBody":{"id":79756,"nodeType":"Block","src":"20843:55:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79753,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"20864:21:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20864:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79755,"nodeType":"RevertStatement","src":"20857:30:159"}]}},{"assignments":[79759],"declarations":[{"constant":false,"id":79759,"mutability":"mutable","name":"slasher","nameLocation":"20916:7:159","nodeType":"VariableDeclaration","scope":79891,"src":"20908:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79758,"name":"address","nodeType":"ElementaryTypeName","src":"20908:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79765,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79761,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79627,"src":"20933:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79760,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20926:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20926:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20941:7:159","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":70306,"src":"20926:22:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20926:24:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20908:42:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":79773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79767,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"20972:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79766,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68478,"src":"20964:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$68478_$","typeString":"type(contract IEntity)"}},"id":79768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20964:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$68478","typeString":"contract IEntity"}},"id":79769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20981:4:159","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":68471,"src":"20964:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":79770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20964:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":79771,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20991:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20993:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"20991:21:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"20964:48:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79778,"nodeType":"IfStatement","src":"20960:111:159","trueBody":{"id":79777,"nodeType":"Block","src":"21014:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79774,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"21035:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21035:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79776,"nodeType":"RevertStatement","src":"21028:32:159"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79780,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"21098:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79779,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21085:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21085:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21107:12:159","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":69564,"src":"21085:34:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":79783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21085:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79788,"nodeType":"IfStatement","src":"21081:98:159","trueBody":{"id":79787,"nodeType":"Block","src":"21123:56:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79784,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76565,"src":"21144:22:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21144:24:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79786,"nodeType":"RevertStatement","src":"21137:31:159"}]}},{"assignments":[79790],"declarations":[{"constant":false,"id":79790,"mutability":"mutable","name":"vetoDuration","nameLocation":"21196:12:159","nodeType":"VariableDeclaration","scope":79891,"src":"21189:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79789,"name":"uint48","nodeType":"ElementaryTypeName","src":"21189:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79796,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79792,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"21224:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79791,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21211:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21211:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21233:12:159","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":69799,"src":"21211:34:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":79795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21211:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21189:58:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79797,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79790,"src":"21261:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79798,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"21276:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21278:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"21276:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21261:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79805,"nodeType":"IfStatement","src":"21257:92:159","trueBody":{"id":79804,"nodeType":"Block","src":"21295:54:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79801,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"21316:20:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21316:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79803,"nodeType":"RevertStatement","src":"21309:29:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79806,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79790,"src":"21363:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":79807,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"21378:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21380:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"21378:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21363:39:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79810,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79677,"src":"21405:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21363:60:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79816,"nodeType":"IfStatement","src":"21359:119:159","trueBody":{"id":79815,"nodeType":"Block","src":"21425:53:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79812,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76571,"src":"21446:19:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21446:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79814,"nodeType":"RevertStatement","src":"21439:28:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79818,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"21505:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79817,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21492:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21492:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21514:22:159","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":69829,"src":"21492:44:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":79821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21492:46:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":79822,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"21541:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21543:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"21541:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21492:76:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79829,"nodeType":"IfStatement","src":"21488:139:159","trueBody":{"id":79828,"nodeType":"Block","src":"21570:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79825,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76589,"src":"21591:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21591:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79827,"nodeType":"RevertStatement","src":"21584:32:159"}]}},{"assignments":[79831],"declarations":[{"constant":false,"id":79831,"mutability":"mutable","name":"resolver","nameLocation":"21645:8:159","nodeType":"VariableDeclaration","scope":79891,"src":"21637:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79830,"name":"address","nodeType":"ElementaryTypeName","src":"21637:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79843,"initialValue":{"arguments":[{"expression":{"id":79836,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"21687:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21689:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"21687:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":79840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21711:1:159","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":79839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21701:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79838,"name":"bytes","nodeType":"ElementaryTypeName","src":"21705:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21701:12:159","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":79833,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"21669:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79832,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21656:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21656:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21678:8:159","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":69851,"src":"21656:30:159","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":79842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21656:58:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21637:77:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79844,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"21728:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21748:1:159","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":79846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21740:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79845,"name":"address","nodeType":"ElementaryTypeName","src":"21740:7:159","typeDescriptions":{}}},"id":79848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21740:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21728:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79865,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"21880:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":79866,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"21892:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21894:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"21892:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:12:159","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":86256,"src":"21892:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21880:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79874,"nodeType":"IfStatement","src":"21876:147:159","trueBody":{"id":79873,"nodeType":"Block","src":"21918:105:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79870,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76586,"src":"21994:16:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21994:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79872,"nodeType":"RevertStatement","src":"21987:25:159"}]}},"id":79875,"nodeType":"IfStatement","src":"21724:299:159","trueBody":{"id":79864,"nodeType":"Block","src":"21752:118:159","statements":[{"expression":{"arguments":[{"id":79854,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77887,"src":"21800:18:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":79855,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"21820:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21822:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"21820:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21832:12:159","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":86256,"src":"21820:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":79860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21856:1:159","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":79859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21846:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79858,"name":"bytes","nodeType":"ElementaryTypeName","src":"21850:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21846:12:159","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":79851,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"21779:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79850,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21766:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21766:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21788:11:159","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":69895,"src":"21766:33:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":79862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21766:93:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79863,"nodeType":"ExpressionStatement","src":"21766:93:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79877,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79627,"src":"22116:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79876,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"22109:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22109:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22124:6:159","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":70288,"src":"22109:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22109:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22144:1:159","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":79882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22136:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79881,"name":"address","nodeType":"ElementaryTypeName","src":"22136:7:159","typeDescriptions":{}}},"id":79884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22136:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22109:37:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79890,"nodeType":"IfStatement","src":"22105:94:159","trueBody":{"id":79889,"nodeType":"Block","src":"22148:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79886,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76553,"src":"22169:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22169:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79888,"nodeType":"RevertStatement","src":"22162:26:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19642:14:159","parameters":{"id":79628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79627,"mutability":"mutable","name":"_vault","nameLocation":"19665:6:159","nodeType":"VariableDeclaration","scope":79892,"src":"19657:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79626,"name":"address","nodeType":"ElementaryTypeName","src":"19657:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19656:16:159"},"returnParameters":{"id":79629,"nodeType":"ParameterList","parameters":[],"src":"19681:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79939,"nodeType":"FunctionDefinition","src":"22211:482:159","nodes":[],"body":{"id":79938,"nodeType":"Block","src":"22290:403:159","nodes":[],"statements":[{"condition":{"id":79908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22304:72:159","subExpression":{"arguments":[{"id":79906,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79896,"src":"22367:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79900,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"22315:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22315:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22326:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"22315:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22336:20:159","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":86248,"src":"22315:41:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79899,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68710,"src":"22305:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$68710_$","typeString":"type(contract IRegistry)"}},"id":79904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22305:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$68710","typeString":"contract IRegistry"}},"id":79905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22358:8:159","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":68695,"src":"22305:61:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":79907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22305:71:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79913,"nodeType":"IfStatement","src":"22300:135:159","trueBody":{"id":79912,"nodeType":"Block","src":"22378:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79909,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76601,"src":"22399:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22399:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79911,"nodeType":"RevertStatement","src":"22392:32:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79915,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79896,"src":"22471:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79914,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"22449:21:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$74763_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":79916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22449:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$74763","typeString":"contract IDefaultStakerRewards"}},"id":79917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22481:5:159","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":74698,"src":"22449:37:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22449:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":79919,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79894,"src":"22492:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22449:49:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79925,"nodeType":"IfStatement","src":"22445:114:159","trueBody":{"id":79924,"nodeType":"Block","src":"22500:59:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79921,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76604,"src":"22521:25:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22521:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79923,"nodeType":"RevertStatement","src":"22514:34:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":79932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79927,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79896,"src":"22595:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79926,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"22573:21:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$74763_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":79928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$74763","typeString":"contract IDefaultStakerRewards"}},"id":79929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22605:7:159","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":74815,"src":"22573:39:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":79930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":79931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22618:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22573:46:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79937,"nodeType":"IfStatement","src":"22569:118:159","trueBody":{"id":79936,"nodeType":"Block","src":"22621:66:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79933,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76577,"src":"22642:32:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79935,"nodeType":"RevertStatement","src":"22635:41:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22220:22:159","parameters":{"id":79897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79894,"mutability":"mutable","name":"_vault","nameLocation":"22251:6:159","nodeType":"VariableDeclaration","scope":79939,"src":"22243:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79893,"name":"address","nodeType":"ElementaryTypeName","src":"22243:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79896,"mutability":"mutable","name":"_rewards","nameLocation":"22267:8:159","nodeType":"VariableDeclaration","scope":79939,"src":"22259:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79895,"name":"address","nodeType":"ElementaryTypeName","src":"22259:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22242:34:159"},"returnParameters":{"id":79898,"nodeType":"ParameterList","parameters":[],"src":"22290:0:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79949,"nodeType":"ModifierDefinition","src":"22830:82:159","nodes":[],"body":{"id":79948,"nodeType":"Block","src":"22865:47:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":79944,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79941,"src":"22891:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79943,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79996,"src":"22875:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":79945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22875:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79946,"nodeType":"ExpressionStatement","src":"22875:19:159"},{"id":79947,"nodeType":"PlaceholderStatement","src":"22904:1:159"}]},"name":"validTimestamp","nameLocation":"22839:14:159","parameters":{"id":79942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79941,"mutability":"mutable","name":"ts","nameLocation":"22861:2:159","nodeType":"VariableDeclaration","scope":79949,"src":"22854:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79940,"name":"uint48","nodeType":"ElementaryTypeName","src":"22854:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22853:11:159"},"virtual":false,"visibility":"internal"},{"id":79996,"nodeType":"FunctionDefinition","src":"22918:408:159","nodes":[],"body":{"id":79995,"nodeType":"Block","src":"22968:358:159","nodes":[],"statements":[{"assignments":[79956],"declarations":[{"constant":false,"id":79956,"mutability":"mutable","name":"$","nameLocation":"22994:1:159","nodeType":"VariableDeclaration","scope":79995,"src":"22978:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79955,"nodeType":"UserDefinedTypeName","pathNode":{"id":79954,"name":"Storage","nameLocations":["22978:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"22978:7:159"},"referencedDeclaration":76699,"src":"22978:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79959,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79957,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"22998:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22998:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22978:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79960,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79951,"src":"23022:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79961,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"23028:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":79962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23033:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"23028:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":79963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23028:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23022:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79969,"nodeType":"IfStatement","src":"23018:80:159","trueBody":{"id":79968,"nodeType":"Block","src":"23046:52:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79965,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76541,"src":"23067:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23067:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79967,"nodeType":"RevertStatement","src":"23060:27:159"}]}},{"assignments":[79971],"declarations":[{"constant":false,"id":79971,"mutability":"mutable","name":"gracePeriod","nameLocation":"23115:11:159","nodeType":"VariableDeclaration","scope":79995,"src":"23108:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79970,"name":"uint48","nodeType":"ElementaryTypeName","src":"23108:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79982,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79972,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79956,"src":"23129:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23131:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"23129:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79974,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79956,"src":"23153:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23155:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"23153:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23129:42:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":79979,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79956,"src":"23198:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23200:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"23198:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":79981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23129:87:159","trueExpression":{"expression":{"id":79977,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79956,"src":"23174:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23176:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"23174:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23108:108:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79983,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79951,"src":"23230:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":79984,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79971,"src":"23235:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23230:16:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79986,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"23250:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":79987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23255:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"23250:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":79988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23250:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23230:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79994,"nodeType":"IfStatement","src":"23226:94:159","trueBody":{"id":79993,"nodeType":"Block","src":"23268:52:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79990,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76541,"src":"23289:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23289:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79992,"nodeType":"RevertStatement","src":"23282:27:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22927:15:159","parameters":{"id":79952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79951,"mutability":"mutable","name":"ts","nameLocation":"22950:2:159","nodeType":"VariableDeclaration","scope":79996,"src":"22943:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79950,"name":"uint48","nodeType":"ElementaryTypeName","src":"22943:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22942:11:159"},"returnParameters":{"id":79953,"nodeType":"ParameterList","parameters":[],"src":"22968:0:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80009,"nodeType":"FunctionDefinition","src":"23332:201:159","nodes":[],"body":{"id":80008,"nodeType":"Block","src":"23402:131:159","nodes":[],"statements":[{"assignments":[80003],"declarations":[{"constant":false,"id":80003,"mutability":"mutable","name":"slot","nameLocation":"23420:4:159","nodeType":"VariableDeclaration","scope":80008,"src":"23412:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80002,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23412:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80006,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80004,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80021,"src":"23427:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23427:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23412:32:159"},{"AST":{"nativeSrc":"23480:47:159","nodeType":"YulBlock","src":"23480:47:159","statements":[{"nativeSrc":"23494:23:159","nodeType":"YulAssignment","src":"23494:23:159","value":{"name":"slot","nativeSrc":"23513:4:159","nodeType":"YulIdentifier","src":"23513:4:159"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23494:15:159","nodeType":"YulIdentifier","src":"23494:15:159"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80000,"isOffset":false,"isSlot":true,"src":"23494:15:159","suffix":"slot","valueSize":1},{"declaration":80003,"isOffset":false,"isSlot":false,"src":"23513:4:159","valueSize":1}],"flags":["memory-safe"],"id":80007,"nodeType":"InlineAssembly","src":"23455:72:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23341:8:159","parameters":{"id":79997,"nodeType":"ParameterList","parameters":[],"src":"23349:2:159"},"returnParameters":{"id":80001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80000,"mutability":"mutable","name":"middleware","nameLocation":"23390:10:159","nodeType":"VariableDeclaration","scope":80009,"src":"23374:26:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79999,"nodeType":"UserDefinedTypeName","pathNode":{"id":79998,"name":"Storage","nameLocations":["23374:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"23374:7:159"},"referencedDeclaration":76699,"src":"23374:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23373:28:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":80021,"nodeType":"FunctionDefinition","src":"23539:128:159","nodes":[],"body":{"id":80020,"nodeType":"Block","src":"23597:70:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":80016,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77881,"src":"23641:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80014,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"23614:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":80015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23626:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"23614:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":80017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":80018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23655:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"23614:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80013,"id":80019,"nodeType":"Return","src":"23607:53:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23548:15:159","parameters":{"id":80010,"nodeType":"ParameterList","parameters":[],"src":"23563:2:159"},"returnParameters":{"id":80013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80021,"src":"23588:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80011,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23588:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23587:9:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":80045,"nodeType":"FunctionDefinition","src":"23673:200:159","nodes":[],"body":{"id":80044,"nodeType":"Block","src":"23741:132:159","nodes":[],"statements":[{"assignments":[80029],"declarations":[{"constant":false,"id":80029,"mutability":"mutable","name":"slot","nameLocation":"23759:4:159","nodeType":"VariableDeclaration","scope":80044,"src":"23751:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23751:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80034,"initialValue":{"arguments":[{"id":80032,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80023,"src":"23793:9:159","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":80030,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"23766:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":80031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23781:11:159","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"23766:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":80033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23766:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23751:52:159"},{"expression":{"id":80042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":80038,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77881,"src":"23840:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80035,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"23813:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":80037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23825:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"23813:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":80039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23813:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":80040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23854:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"23813:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80041,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80029,"src":"23862:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23813:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80043,"nodeType":"ExpressionStatement","src":"23813:53:159"}]},"implemented":true,"kind":"function","modifiers":[{"id":80026,"kind":"modifierInvocation","modifierName":{"id":80025,"name":"onlyOwner","nameLocations":["23731:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"23731:9:159"},"nodeType":"ModifierInvocation","src":"23731:9:159"}],"name":"_setStorageSlot","nameLocation":"23682:15:159","parameters":{"id":80024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80023,"mutability":"mutable","name":"namespace","nameLocation":"23712:9:159","nodeType":"VariableDeclaration","scope":80045,"src":"23698:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":80022,"name":"string","nodeType":"ElementaryTypeName","src":"23698:6:159","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23697:25:159"},"returnParameters":{"id":80027,"nodeType":"ParameterList","parameters":[],"src":"23741:0:159"},"scope":80076,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80055,"nodeType":"ModifierDefinition","src":"23879:81:159","nodes":[],"body":{"id":80054,"nodeType":"Block","src":"23914:46:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":80050,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80047,"src":"23936:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80049,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80075,"src":"23924:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":80051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23924:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80052,"nodeType":"ExpressionStatement","src":"23924:18:159"},{"id":80053,"nodeType":"PlaceholderStatement","src":"23952:1:159"}]},"name":"vaultOwner","nameLocation":"23888:10:159","parameters":{"id":80048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80047,"mutability":"mutable","name":"vault","nameLocation":"23907:5:159","nodeType":"VariableDeclaration","scope":80055,"src":"23899:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80046,"name":"address","nodeType":"ElementaryTypeName","src":"23899:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23898:15:159"},"virtual":false,"visibility":"internal"},{"id":80075,"nodeType":"FunctionDefinition","src":"23966:181:159","nodes":[],"body":{"id":80074,"nodeType":"Block","src":"24016:131:159","nodes":[],"statements":[{"condition":{"id":80068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24030:62:159","subExpression":{"arguments":[{"id":80064,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77884,"src":"24061:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80065,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24081:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24085:6:159","memberName":"sender","nodeType":"MemberAccess","src":"24081:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":80061,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80057,"src":"24046:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80060,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"24031:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$82_$","typeString":"type(contract IAccessControl)"}},"id":80062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24031:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$82","typeString":"contract IAccessControl"}},"id":80063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24053:7:159","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":49,"src":"24031:29:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":80067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24031:61:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80073,"nodeType":"IfStatement","src":"24026:115:159","trueBody":{"id":80072,"nodeType":"Block","src":"24094:47:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":80069,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"24115:13:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24115:15:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":80071,"nodeType":"RevertStatement","src":"24108:22:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"23975:11:159","parameters":{"id":80058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80057,"mutability":"mutable","name":"vault","nameLocation":"23995:5:159","nodeType":"VariableDeclaration","scope":80075,"src":"23987:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80056,"name":"address","nodeType":"ElementaryTypeName","src":"23987:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23986:15:159"},"returnParameters":{"id":80059,"nodeType":"ParameterList","parameters":[],"src":"24016:0:159"},"scope":80076,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":77856,"name":"IMiddleware","nameLocations":["2399:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":76902,"src":"2399:11:159"},"id":77857,"nodeType":"InheritanceSpecifier","src":"2399:11:159"},{"baseName":{"id":77858,"name":"OwnableUpgradeable","nameLocations":["2412:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"2412:18:159"},"id":77859,"nodeType":"InheritanceSpecifier","src":"2412:18:159"},{"baseName":{"id":77860,"name":"ReentrancyGuardTransient","nameLocations":["2432:24:159"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"2432:24:159"},"id":77861,"nodeType":"InheritanceSpecifier","src":"2432:24:159"},{"baseName":{"id":77862,"name":"UUPSUpgradeable","nameLocations":["2458:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"2458:15:159"},"id":77863,"nodeType":"InheritanceSpecifier","src":"2458:15:159"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[80076,2079,376,6594,19465,20363,1913,76902],"name":"Middleware","nameLocation":"2385:10:159","scope":80077,"usedErrors":[995,1008,1662,1665,1936,1941,3201,6168,6514,11979,13890,19301,19306,76523,76526,76529,76532,76535,76538,76541,76544,76547,76550,76553,76556,76559,76562,76565,76568,76571,76574,76577,76580,76583,76586,76589,76592,76595,76598,76601,76604,76607,76610,76613,76616,76619,76622,76625,76628,76631,87145,87148,87151],"usedEvents":[324,1670,19312]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":159} \ 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":"0x60a080604052346100c257306080525f516020613d285f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6190816100c78239608051818181611c610152611d3d0152f35b6001600160401b0319166001600160401b039081175f516020613d285f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf91461249e5780630a71094c146121f65780632633b70f146121425780632acde09814611fea578063373bba1f14611fb45780633ccce78914611f775780633d15e74e14611f4a5780634455a38f14611f17578063461e7a8e14611ee15780634f1ef28614611cb557806352d1902d14611c4e5780636c2eb350146118115780636d1064eb146117a45780636e5c793214611767578063709d06ae14611731578063715018a6146116c8578063729e2f36146115aa57806379a8b245146115745780637fbe95b5146111b157806386c241a1146111535780638da5cb5b1461111e578063936f4330146110e1578063945cf2dd146110ab57806396115bc214610fdf5780639e03231114610fb1578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c215f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e34565b61022761366b565b613444565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f5254013390613565565b50346101ff5760403660031901126101ff57602061029261027b612e34565b610283612ec4565b9061028d826136ef565b613401565b604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e5e565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c215f395f51905f525460405161041481612e5e565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eaf565b6132e0565b9091604051938493604085526040850190612ed9565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c215f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387612fc7565b5f516020613c215f395f51905f52549091906106bc906015016001600160a01b036106a785612f7e565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612f7e565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612e8e565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f2c565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612e8e565b81019061300a565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612e8e565b810190612feb565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612e8e565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f2c565b0390f35b50346101ff576102e03660031901126101ff575f516020613c415f395f51905f52546001600160401b0360ff8260401c1615911680159081610fa9575b6001149081610f9f575b159081610f96575b50610f87578060016001600160401b03195f516020613c415f395f51905f525416175f516020613c415f395f51905f5255610f57575b6004356001600160a01b03811681036107f4576108f5906108ed613995565b610227613995565b60409081516109048382612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093761366b565b905190205f190183526020832060ff19165f516020613c215f395f51905f5281905560243565ffffffffffff81168103610f5357815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f535781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5357815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5357815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5357815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f535765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f4b576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f4f5781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f4b576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f4b576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f4b576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f4b576009820180546001600160a01b0319166001600160a01b03909216919091179055610bc7612f50565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf0612f67565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f4b57600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f4b57600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f4b57600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f4b57600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f4b576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f4b576011820180546001600160a01b0319166001600160a01b039283161790558690610d1a612f50565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f2c57610f36575b506001600160a01b03610d55612f67565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f2c57610f13575b5050549065ffffffffffff821615610f045765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef0578310610ee1578265ffffffffffff8260601c1610610ed2578265ffffffffffff8260901c1610610ec35760c01c65ffffffffffff16908115610eb4575465ffffffffffff16908115610ea55765ffffffffffff91610e1e91613019565b1611610e96576003905410610e8757610e35575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f1d91612e8e565b610f2857855f610d85565b8580fd5b87513d84823e3d90fd5b81610f4091612e8e565b610f2857855f610d44565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c415f395f51905f525416175f516020613c415f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c215f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57610ff9612e34565b5f516020613c215f395f51905f52546001600160a01b0390911690601281019061104361102684846139c0565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff811615929150821561107b575b505061106c57906110689161397b565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a08291826110944261394c565b955460601c1690613019565b169116105f80611058565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c6110fe612e34565b611107816134b5565b60155f516020613c215f395f51905f5254016135ef565b50346101ff57806003193601126101ff575f516020613be15f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff5761116d612e34565b5f516020613c215f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115605760405281600401356001600160401b03811161155c5782013660238201121561155c57600481013561122c81612f15565b9161123a6040519384612e8e565b818352602060048185019360061b8301010190368211610f4b57602401915b8183106114fe57505050815261127c604460208301936024810135855201612e4a565b906040810191825261128c612ec4565b935f516020613c215f395f51905f525490600782019460018060a01b0386541633036114ef57845160068401546001600160a01b039182169116036114e057819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a1015611499578961130191613063565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113ba8b6113ac8b61139a6113498f6110269060018060a01b038a5116906139c0565b9a546040516001600160a01b03909c169b925090506113688683612e8e565b838252604051936113798786612e8e565b845260405197889687015260408601526080606086015260a0850190612f2c565b838103601f1901608085015290612f2c565b03601f198101835282612e8e565b85548751838d0180519096909290916001600160a01b039081169116823b1561149557908c8094939261141a6040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f2c565b03925af1801561148a57908991611475575b50509161146d91600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611468605483612e8e565b6132a0565b9801976112ec565b8161147f91612e8e565b610f4f57875f61142c565b6040513d8b823e3d90fd5b8c80fd5b886114d286848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611468605483612e8e565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f4b57604051604081018181106001600160401b038211176115485791602091604093845261153386612e4a565b81528286013583820152815201920191611259565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115c4612e34565b5f516020613c215f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116b95760068101546001600160a01b03928316921682036116aa57600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af1801561169f5761168a575b602083836040519083820192835260408201526040815261167f606082612e8e565b519020604051908152f35b611695848092612e8e565b6107f4578261165d565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e161366b565b5f516020613be15f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff57610845611790611787612eaf565b60243590613084565b604051918291602083526020830190612ed9565b50346101ff5760203660031901126101ff576117be612e34565b5f516020613c215f395f51905f5254600f0180549091906001600160a01b031633036118025781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff5761182a61366b565b5f516020613c415f395f51905f525460ff8160401c16908115611c39575b50611c2a575f516020613c415f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613be15f395f51905f525461189a906001600160a01b03166108ed613995565b5f516020613c215f395f51905f5254906040516118b8604082612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118eb61366b565b905190205f190181526020812060ff19165f516020613c215f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a28600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b42575b50506012808401939290820191815b8354811015611abc5780611ab5611aae6001938761369e565b90896136cd565b5001611a95565b506015808501929101815b8154811015611aee5780611ae7611ae06001938561369e565b90876136cd565b5001611ac7565b8260ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a86565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611848565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611ca65760206040515f516020613c015f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cca612e34565b90602435916001600160401b0383116107f857366023840112156107f85782600401356001600160401b038111611ecd5760405193611d13601f8301601f191660200186612e8e565b818552366024838301011161155c5781849260246020930183880137850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611eab575b50611e9c57611d7561366b565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596611e68575b50611dba57634c9c8ce360e01b84526004839052602484fd5b9091845f516020613c015f395f51905f528103611e565750823b15611e44575f516020613c015f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115611e2b5761106891613a17565b505034611e355780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611e94575b81611e8460209383612e8e565b81010312610f535751945f611da1565b3d9150611e77565b63703e46dd60e11b8252600482fd5b5f516020613c015f395f51905f52546001600160a01b0316141590505f611d68565b634e487b7160e01b83526041600452602483fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f52540133906135ef565b50346101ff5760203660031901126101ff5761022c611f94612e34565b611f9d816134b5565b60155f516020613c215f395f51905f525401613565565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa908115612109578391612123575b501561211457600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa9081156121095783916120da575b50156120cb576120b49065ffffffffffff6120a84261394c565b169060123391016136cd565b156120bc5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b6120fc915060203d602011612102575b6120f48183612e8e565b81019061304b565b5f61208e565b503d6120ea565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61213c915060203d602011612102576120f48183612e8e565b5f612046565b50346101ff5760203660031901126101ff5761215c612e34565b612165816134b5565b5f516020613c215f395f51905f52546001600160a01b0390911690601581019061219261102684846139c0565b5065ffffffffffff81161592915082156121c6575b50506121b757906110689161397b565b6347a11ef760e11b8352600483fd5b65ffffffffffff9192506121eb8291826121df4261394c565b955460901c1690613019565b169116105f806121a7565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c215f395f51905f5254600f8101546001600160a01b0316330361248f5781906020905b6004356004013583101561248b5760248360051b600435010135608219600435360301811215610f535760043501906122d56001600160a01b036122bf60248501612f7e565b165f908152601383016020526040902054151590565b1561247c57845b6122ec6064840160248501612f92565b905081101561246f5761230f816123096064860160248701612f92565b90612fc7565b6123396001600160a01b0361232383612f7e565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361235683612f7e565b166040519384809263b134427160e01b82525afa91821561169f578492612450575b5060048501549161238b60248801612f7e565b604488013565ffffffffffff81169003610f2857889586946124106040516123b38882612e8e565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f2c565b03926001600160a01b03165af191821561079357600192612433575b50016122dc565b61244990863d881161078c5761077d8183612e8e565b505f61242c565b612468919250873d89116107c4576107b68183612e8e565b905f612378565b5092600191500191612279565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b60576040366003190112612b60576124b8612e34565b6024356001600160a01b038116929190839003612b60576124d8816134b5565b5f516020613c215f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612cf2575f91612e15575b5015612e065760405163054fd4d560e41b8152602081600481875afa908115612cf2575f91612de7575b5060038201906001600160401b0380835416911603612dd85760405163d8dfeb4560e01b8152602081600481885afa908115612cf2575f91612db9575b5060068301546001600160a01b03908116911603612daa576040516327f843b560e11b8152602081600481885afa908115612cf2575f91612d8b575b5065ffffffffffff80845460301c169116908110612d7c5760405163142186b760e21b8152602081600481895afa908115612cf2575f91612d5d575b5015612d4e57604051630ce9b79360e41b8152602081600481895afa908115612cf2575f91612d2f575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612cf2575f91612cfd575b5019612ca0575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612c81575b506001600160a01b0316612c6f57604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c50575b5015612c415760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c22575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa91821561148a578992612bf6575b506001600160401b0380915460401c16911603612be757604051631a684c7560e11b8152602081600481875afa9081156107cb578891612bc8575b50612bb95760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612b8a575b5065ffffffffffff855460c01c1665ffffffffffff821610612b7b576127c165ffffffffffff918260018801541690613019565b1611612b6c5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b36575b50600284015410612b275754906020926128438460405161280c8282612e8e565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f2c565b0381865afa9081156107cb578891612b0a575b506001600160a01b031680612ae3575060110154604051926001600160a01b03909116906128848585612e8e565b8784523685850137813b15610f4b579186916128ca93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f2c565b03925af18015612a3457908591612ace575b50505b6040516313c085b760e11b81528181600481875afa908115612a34578591612ab1575b506001600160a01b031615612aa2575f516020613c215f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a6b578691612a85575b5015612a765760405163411557d160e01b815282816004818a5afa908115612a6b578691612a4e575b506001600160a01b031603612a3f5760405163054fd4d560e41b81528181600481895afa918215612a3457916001600160401b03916002938792612a07575b505016036129f85760156120b4939465ffffffffffff6129df4261394c565b1660609190911b6001600160601b0319161792016136cd565b63ded51c0b60e01b8352600483fd5b612a269250803d10612a2d575b612a1e8183612e8e565b810190613528565b5f806129c0565b503d612a14565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a659150833d85116107c4576107b68183612e8e565b5f612981565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612a9c9150833d8511612102576120f48183612e8e565b5f612958565b630c6b5ff760e31b8452600484fd5b612ac89150823d84116107c4576107b68183612e8e565b5f612902565b81612ad891612e8e565b61155c57835f6128dc565b6011909101546001600160a01b03161491506128df905057633cc6586560e21b8452600484fd5b612b219150853d87116107c4576107b68183612e8e565b5f612856565b633a2662c360e11b8652600486fd5b90506020813d602011612b64575b81612b5160209383612e8e565b81010312612b6057515f6127eb565b5f80fd5b3d9150612b44565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bac915060203d602011612bb2575b612ba48183612e8e565b810190613547565b5f61278d565b503d612b9a565b63447984b360e11b8752600487fd5b612be1915060203d602011612102576120f48183612e8e565b5f612764565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c1a829160203d602011612a2d57612a1e8183612e8e565b929150612729565b612c3b915060203d6020116107c4576107b68183612e8e565b5f6126f7565b631501f36360e21b8752600487fd5b612c69915060203d602011612102576120f48183612e8e565b5f6126cd565b60016221bb1360e11b03198752600487fd5b612c9a915060203d6020116107c4576107b68183612e8e565b5f61269b565b803b15612b60576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612cf257612cdc575b50612675565b612ce99198505f90612e8e565b5f966020612cd6565b6040513d5f823e3d90fd5b90506020813d602011612d27575b81612d1860209383612e8e565b81010312612b6057515f61266e565b3d9150612d0b565b612d48915060203d6020116107c4576107b68183612e8e565b5f612632565b636e549c1760e11b5f5260045ffd5b612d76915060203d602011612102576120f48183612e8e565b5f612608565b634934476760e01b5f5260045ffd5b612da4915060203d602011612bb257612ba48183612e8e565b5f6125cc565b63039a1fd760e21b5f5260045ffd5b612dd2915060203d6020116107c4576107b68183612e8e565b5f612590565b63bfcdc45f60e01b5f5260045ffd5b612e00915060203d602011612a2d57612a1e8183612e8e565b5f612553565b635b19e4bb60e01b5f5260045ffd5b612e2e915060203d602011612102576120f48183612e8e565b5f612529565b600435906001600160a01b0382168203612b6057565b35906001600160a01b0382168203612b6057565b61014081019081106001600160401b03821117612e7a57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e7a57604052565b6004359065ffffffffffff82168203612b6057565b6024359065ffffffffffff82168203612b6057565b90602080835192838152019201905f5b818110612ef65750505090565b82516001600160a01b0316845260209384019390920191600101612ee9565b6001600160401b038111612e7a5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b605790565b610204356001600160a01b0381168103612b605790565b356001600160a01b0381168103612b605790565b903590601e1981360301821215612b6057018035906001600160401b038211612b6057602001918160061b36038313612b6057565b9190811015612fd75760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b6057516001600160a01b0381168103612b605790565b90816020910312612b60575190565b9065ffffffffffff8091169116019065ffffffffffff821161303757565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b6057518015158103612b605790565b8051821015612fd75760209160051b010190565b9190820180921161303757565b91811561329157613094836132e0565b92815181811115613288575f5f198201828111925b8083106131af57505050506001945f19820190828211613037576130cd8287613063565b5183975b85518910156131a157816130e58a8a613063565b51036131015760018101809111613037576001909801976130d1565b9395975050909294505b6001821161311c575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613144602682612e8e565b51902090801561318d57613159910683613077565b5f19810190811161303757613184906001600160a01b039061317b9086613063565b51169184613063565b525f8080613114565b634e487b7160e01b5f52601260045260245ffd5b93959750509092945061310b565b9296958792959891945f935b613037578685035f190186811161303757841015613275576131dd8489613063565b51600185019485811161303757858c826001946131fb8f9a8f613063565b511161320c575b50505001936131bb565b61326c918d61323c8361321f8784613063565b519261322b8282613063565b516132368983613063565b52613063565b52858060a01b0361324d8583613063565b511693613236878060a01b036132638585613063565b51169183613063565b525f8c82613202565b94919895600191979894935001916130a9565b50509150915090565b6314f867c760e21b5f5260045ffd5b6132de906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612e8e565b565b906132ea826136ef565b60125f516020613c215f395f51905f52540180549261330884612f15565b916133166040519384612e8e565b848352601f1961332586612f15565b0136602085013761333585612f15565b946133436040519687612e8e565b808652601f1961335282612f15565b013660208801375f925f925b828410613372575050505080825283529190565b909192936133a76133ae84613387888661369e565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b5090613779565b156133f757836133d3916133c2848a613063565b6001600160a01b03821690526137d2565b6133dd828a613063565b526001810180911161303757600190945b0192919061335e565b50936001906133ee565b9061342d816133a761102660125f516020613c215f395f51905f52540160018060a01b038716906139c0565b1561343e5761343b916137d2565b90565b50505f90565b6001600160a01b031680156134a2575f516020613be15f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612cf2575f91613509575b50156134fa57565b630e7fea9d60e01b5f5260045ffd5b613522915060203d602011612102576120f48183612e8e565b5f6134f2565b90816020910312612b6057516001600160401b0381168103612b605790565b90816020910312612b60575165ffffffffffff81168103612b605790565b65ffffffffffff916135836110266001600160a01b038316846139c0565b91949094169384159081156135dd575b506135ce576135cb9365ffffffffffff60301b6135af4261394c565b60301b161760609190911b6001600160601b03191617916136cd565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f613593565b65ffffffffffff9161360d6110266001600160a01b038316846139c0565b949091161515908161365a575b5061364b576135cb9265ffffffffffff6136334261394c565b1660609190911b6001600160601b03191617916136cd565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f61361a565b5f516020613be15f395f51905f52546001600160a01b0316330361368b57565b63118cdaa760e01b5f523360045260245ffd5b91906136ac60029184613aa3565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b61343b929160018060a01b031691825f526002820160205260405f2055613b93565b5f516020613c215f395f51905f52549065ffffffffffff61370f4261394c565b1665ffffffffffff8216101561376257613746915465ffffffffffff808260601c169160901c168082105f14613771575090613019565b65ffffffffffff806137574261394c565b169116111561376257565b63686c69fd60e01b5f5260045ffd5b905090613019565b65ffffffffffff16801515929190836137bf575b508261379857505090565b65ffffffffffff16801592509082156137b057505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f61378d565b5f516020613c215f395f51905f52546015810180546004909201545f95948694602093869391905b86881061380b575050505050505050565b90919293949596986133a7613824866133878d8661369e565b1561394257604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612cf2576138c09189915f91613925575b506040519061386e8383612e8e565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f2c565b03916001600160a01b03165afa908115612cf2575f916138f7575b506138e890600192613077565b995b01969594939291906137fa565b90508781813d831161391e575b61390e8183612e8e565b81010312612b60575160016138db565b503d613904565b61393c9150823d84116107c4576107b68183612e8e565b5f61385f565b50986001906138ea565b65ffffffffffff81116139645765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061343b91815f52600281016020525f6040812055613ab8565b60ff5f516020613c415f395f51905f525460401c16156139b157565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f20549181831591826139f7575b50506139e5575090565b63015ab34360e11b5f5260045260245ffd5b613a0f92506001915f520160205260405f2054151590565b15815f6139db565b905f8091602081519101845af48080613a90575b15613a4b5750506040513d81523d5f602083013e60203d82010160405290565b15613a7057639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15613a81576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580613a2b5750813b1515613a2b565b8054821015612fd7575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b8b575f1981018181116130375782545f1981019190821161303757818103613b40575b50505080548015613b2c575f190190613b0d8282613aa3565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b76613b50613b609386613aa3565b90549060031b1c92839286613aa3565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613af4565b505050505f90565b5f82815260018201602052604090205461343e57805490600160401b821015612e7a5782613bcb613b60846001809601855584613aa3565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21773:159:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;7983:34:18;7979:146;;-1:-1:-1;2376:21773:159;;;;;;;;1076:13:19;2376:21773:159;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;8085:29:18;;2376:21773:159;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;2376:21773:159;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf91461249e5780630a71094c146121f65780632633b70f146121425780632acde09814611fea578063373bba1f14611fb45780633ccce78914611f775780633d15e74e14611f4a5780634455a38f14611f17578063461e7a8e14611ee15780634f1ef28614611cb557806352d1902d14611c4e5780636c2eb350146118115780636d1064eb146117a45780636e5c793214611767578063709d06ae14611731578063715018a6146116c8578063729e2f36146115aa57806379a8b245146115745780637fbe95b5146111b157806386c241a1146111535780638da5cb5b1461111e578063936f4330146110e1578063945cf2dd146110ab57806396115bc214610fdf5780639e03231114610fb1578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c215f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e34565b61022761366b565b613444565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f5254013390613565565b50346101ff5760403660031901126101ff57602061029261027b612e34565b610283612ec4565b9061028d826136ef565b613401565b604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e5e565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c215f395f51905f525460405161041481612e5e565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eaf565b6132e0565b9091604051938493604085526040850190612ed9565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c215f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387612fc7565b5f516020613c215f395f51905f52549091906106bc906015016001600160a01b036106a785612f7e565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612f7e565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612e8e565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f2c565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612e8e565b81019061300a565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612e8e565b810190612feb565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612e8e565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f2c565b0390f35b50346101ff576102e03660031901126101ff575f516020613c415f395f51905f52546001600160401b0360ff8260401c1615911680159081610fa9575b6001149081610f9f575b159081610f96575b50610f87578060016001600160401b03195f516020613c415f395f51905f525416175f516020613c415f395f51905f5255610f57575b6004356001600160a01b03811681036107f4576108f5906108ed613995565b610227613995565b60409081516109048382612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093761366b565b905190205f190183526020832060ff19165f516020613c215f395f51905f5281905560243565ffffffffffff81168103610f5357815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f535781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5357815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5357815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5357815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f535765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f4b576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f4f5781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f4b576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f4b576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f4b576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f4b576009820180546001600160a01b0319166001600160a01b03909216919091179055610bc7612f50565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf0612f67565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f4b57600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f4b57600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f4b57600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f4b57600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f4b576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f4b576011820180546001600160a01b0319166001600160a01b039283161790558690610d1a612f50565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f2c57610f36575b506001600160a01b03610d55612f67565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f2c57610f13575b5050549065ffffffffffff821615610f045765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef0578310610ee1578265ffffffffffff8260601c1610610ed2578265ffffffffffff8260901c1610610ec35760c01c65ffffffffffff16908115610eb4575465ffffffffffff16908115610ea55765ffffffffffff91610e1e91613019565b1611610e96576003905410610e8757610e35575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f1d91612e8e565b610f2857855f610d85565b8580fd5b87513d84823e3d90fd5b81610f4091612e8e565b610f2857855f610d44565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c415f395f51905f525416175f516020613c415f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c215f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57610ff9612e34565b5f516020613c215f395f51905f52546001600160a01b0390911690601281019061104361102684846139c0565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff811615929150821561107b575b505061106c57906110689161397b565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a08291826110944261394c565b955460601c1690613019565b169116105f80611058565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c6110fe612e34565b611107816134b5565b60155f516020613c215f395f51905f5254016135ef565b50346101ff57806003193601126101ff575f516020613be15f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff5761116d612e34565b5f516020613c215f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115605760405281600401356001600160401b03811161155c5782013660238201121561155c57600481013561122c81612f15565b9161123a6040519384612e8e565b818352602060048185019360061b8301010190368211610f4b57602401915b8183106114fe57505050815261127c604460208301936024810135855201612e4a565b906040810191825261128c612ec4565b935f516020613c215f395f51905f525490600782019460018060a01b0386541633036114ef57845160068401546001600160a01b039182169116036114e057819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a1015611499578961130191613063565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113ba8b6113ac8b61139a6113498f6110269060018060a01b038a5116906139c0565b9a546040516001600160a01b03909c169b925090506113688683612e8e565b838252604051936113798786612e8e565b845260405197889687015260408601526080606086015260a0850190612f2c565b838103601f1901608085015290612f2c565b03601f198101835282612e8e565b85548751838d0180519096909290916001600160a01b039081169116823b1561149557908c8094939261141a6040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f2c565b03925af1801561148a57908991611475575b50509161146d91600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611468605483612e8e565b6132a0565b9801976112ec565b8161147f91612e8e565b610f4f57875f61142c565b6040513d8b823e3d90fd5b8c80fd5b886114d286848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611468605483612e8e565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f4b57604051604081018181106001600160401b038211176115485791602091604093845261153386612e4a565b81528286013583820152815201920191611259565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115c4612e34565b5f516020613c215f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116b95760068101546001600160a01b03928316921682036116aa57600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af1801561169f5761168a575b602083836040519083820192835260408201526040815261167f606082612e8e565b519020604051908152f35b611695848092612e8e565b6107f4578261165d565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e161366b565b5f516020613be15f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff57610845611790611787612eaf565b60243590613084565b604051918291602083526020830190612ed9565b50346101ff5760203660031901126101ff576117be612e34565b5f516020613c215f395f51905f5254600f0180549091906001600160a01b031633036118025781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff5761182a61366b565b5f516020613c415f395f51905f525460ff8160401c16908115611c39575b50611c2a575f516020613c415f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613be15f395f51905f525461189a906001600160a01b03166108ed613995565b5f516020613c215f395f51905f5254906040516118b8604082612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118eb61366b565b905190205f190181526020812060ff19165f516020613c215f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a28600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b42575b50506012808401939290820191815b8354811015611abc5780611ab5611aae6001938761369e565b90896136cd565b5001611a95565b506015808501929101815b8154811015611aee5780611ae7611ae06001938561369e565b90876136cd565b5001611ac7565b8260ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a86565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611848565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611ca65760206040515f516020613c015f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cca612e34565b90602435916001600160401b0383116107f857366023840112156107f85782600401356001600160401b038111611ecd5760405193611d13601f8301601f191660200186612e8e565b818552366024838301011161155c5781849260246020930183880137850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611eab575b50611e9c57611d7561366b565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596611e68575b50611dba57634c9c8ce360e01b84526004839052602484fd5b9091845f516020613c015f395f51905f528103611e565750823b15611e44575f516020613c015f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115611e2b5761106891613a17565b505034611e355780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611e94575b81611e8460209383612e8e565b81010312610f535751945f611da1565b3d9150611e77565b63703e46dd60e11b8252600482fd5b5f516020613c015f395f51905f52546001600160a01b0316141590505f611d68565b634e487b7160e01b83526041600452602483fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f52540133906135ef565b50346101ff5760203660031901126101ff5761022c611f94612e34565b611f9d816134b5565b60155f516020613c215f395f51905f525401613565565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa908115612109578391612123575b501561211457600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa9081156121095783916120da575b50156120cb576120b49065ffffffffffff6120a84261394c565b169060123391016136cd565b156120bc5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b6120fc915060203d602011612102575b6120f48183612e8e565b81019061304b565b5f61208e565b503d6120ea565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61213c915060203d602011612102576120f48183612e8e565b5f612046565b50346101ff5760203660031901126101ff5761215c612e34565b612165816134b5565b5f516020613c215f395f51905f52546001600160a01b0390911690601581019061219261102684846139c0565b5065ffffffffffff81161592915082156121c6575b50506121b757906110689161397b565b6347a11ef760e11b8352600483fd5b65ffffffffffff9192506121eb8291826121df4261394c565b955460901c1690613019565b169116105f806121a7565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c215f395f51905f5254600f8101546001600160a01b0316330361248f5781906020905b6004356004013583101561248b5760248360051b600435010135608219600435360301811215610f535760043501906122d56001600160a01b036122bf60248501612f7e565b165f908152601383016020526040902054151590565b1561247c57845b6122ec6064840160248501612f92565b905081101561246f5761230f816123096064860160248701612f92565b90612fc7565b6123396001600160a01b0361232383612f7e565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361235683612f7e565b166040519384809263b134427160e01b82525afa91821561169f578492612450575b5060048501549161238b60248801612f7e565b604488013565ffffffffffff81169003610f2857889586946124106040516123b38882612e8e565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f2c565b03926001600160a01b03165af191821561079357600192612433575b50016122dc565b61244990863d881161078c5761077d8183612e8e565b505f61242c565b612468919250873d89116107c4576107b68183612e8e565b905f612378565b5092600191500191612279565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b60576040366003190112612b60576124b8612e34565b6024356001600160a01b038116929190839003612b60576124d8816134b5565b5f516020613c215f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612cf2575f91612e15575b5015612e065760405163054fd4d560e41b8152602081600481875afa908115612cf2575f91612de7575b5060038201906001600160401b0380835416911603612dd85760405163d8dfeb4560e01b8152602081600481885afa908115612cf2575f91612db9575b5060068301546001600160a01b03908116911603612daa576040516327f843b560e11b8152602081600481885afa908115612cf2575f91612d8b575b5065ffffffffffff80845460301c169116908110612d7c5760405163142186b760e21b8152602081600481895afa908115612cf2575f91612d5d575b5015612d4e57604051630ce9b79360e41b8152602081600481895afa908115612cf2575f91612d2f575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612cf2575f91612cfd575b5019612ca0575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612c81575b506001600160a01b0316612c6f57604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c50575b5015612c415760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c22575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa91821561148a578992612bf6575b506001600160401b0380915460401c16911603612be757604051631a684c7560e11b8152602081600481875afa9081156107cb578891612bc8575b50612bb95760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612b8a575b5065ffffffffffff855460c01c1665ffffffffffff821610612b7b576127c165ffffffffffff918260018801541690613019565b1611612b6c5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b36575b50600284015410612b275754906020926128438460405161280c8282612e8e565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f2c565b0381865afa9081156107cb578891612b0a575b506001600160a01b031680612ae3575060110154604051926001600160a01b03909116906128848585612e8e565b8784523685850137813b15610f4b579186916128ca93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f2c565b03925af18015612a3457908591612ace575b50505b6040516313c085b760e11b81528181600481875afa908115612a34578591612ab1575b506001600160a01b031615612aa2575f516020613c215f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a6b578691612a85575b5015612a765760405163411557d160e01b815282816004818a5afa908115612a6b578691612a4e575b506001600160a01b031603612a3f5760405163054fd4d560e41b81528181600481895afa918215612a3457916001600160401b03916002938792612a07575b505016036129f85760156120b4939465ffffffffffff6129df4261394c565b1660609190911b6001600160601b0319161792016136cd565b63ded51c0b60e01b8352600483fd5b612a269250803d10612a2d575b612a1e8183612e8e565b810190613528565b5f806129c0565b503d612a14565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a659150833d85116107c4576107b68183612e8e565b5f612981565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612a9c9150833d8511612102576120f48183612e8e565b5f612958565b630c6b5ff760e31b8452600484fd5b612ac89150823d84116107c4576107b68183612e8e565b5f612902565b81612ad891612e8e565b61155c57835f6128dc565b6011909101546001600160a01b03161491506128df905057633cc6586560e21b8452600484fd5b612b219150853d87116107c4576107b68183612e8e565b5f612856565b633a2662c360e11b8652600486fd5b90506020813d602011612b64575b81612b5160209383612e8e565b81010312612b6057515f6127eb565b5f80fd5b3d9150612b44565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bac915060203d602011612bb2575b612ba48183612e8e565b810190613547565b5f61278d565b503d612b9a565b63447984b360e11b8752600487fd5b612be1915060203d602011612102576120f48183612e8e565b5f612764565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c1a829160203d602011612a2d57612a1e8183612e8e565b929150612729565b612c3b915060203d6020116107c4576107b68183612e8e565b5f6126f7565b631501f36360e21b8752600487fd5b612c69915060203d602011612102576120f48183612e8e565b5f6126cd565b60016221bb1360e11b03198752600487fd5b612c9a915060203d6020116107c4576107b68183612e8e565b5f61269b565b803b15612b60576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612cf257612cdc575b50612675565b612ce99198505f90612e8e565b5f966020612cd6565b6040513d5f823e3d90fd5b90506020813d602011612d27575b81612d1860209383612e8e565b81010312612b6057515f61266e565b3d9150612d0b565b612d48915060203d6020116107c4576107b68183612e8e565b5f612632565b636e549c1760e11b5f5260045ffd5b612d76915060203d602011612102576120f48183612e8e565b5f612608565b634934476760e01b5f5260045ffd5b612da4915060203d602011612bb257612ba48183612e8e565b5f6125cc565b63039a1fd760e21b5f5260045ffd5b612dd2915060203d6020116107c4576107b68183612e8e565b5f612590565b63bfcdc45f60e01b5f5260045ffd5b612e00915060203d602011612a2d57612a1e8183612e8e565b5f612553565b635b19e4bb60e01b5f5260045ffd5b612e2e915060203d602011612102576120f48183612e8e565b5f612529565b600435906001600160a01b0382168203612b6057565b35906001600160a01b0382168203612b6057565b61014081019081106001600160401b03821117612e7a57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e7a57604052565b6004359065ffffffffffff82168203612b6057565b6024359065ffffffffffff82168203612b6057565b90602080835192838152019201905f5b818110612ef65750505090565b82516001600160a01b0316845260209384019390920191600101612ee9565b6001600160401b038111612e7a5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b605790565b610204356001600160a01b0381168103612b605790565b356001600160a01b0381168103612b605790565b903590601e1981360301821215612b6057018035906001600160401b038211612b6057602001918160061b36038313612b6057565b9190811015612fd75760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b6057516001600160a01b0381168103612b605790565b90816020910312612b60575190565b9065ffffffffffff8091169116019065ffffffffffff821161303757565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b6057518015158103612b605790565b8051821015612fd75760209160051b010190565b9190820180921161303757565b91811561329157613094836132e0565b92815181811115613288575f5f198201828111925b8083106131af57505050506001945f19820190828211613037576130cd8287613063565b5183975b85518910156131a157816130e58a8a613063565b51036131015760018101809111613037576001909801976130d1565b9395975050909294505b6001821161311c575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613144602682612e8e565b51902090801561318d57613159910683613077565b5f19810190811161303757613184906001600160a01b039061317b9086613063565b51169184613063565b525f8080613114565b634e487b7160e01b5f52601260045260245ffd5b93959750509092945061310b565b9296958792959891945f935b613037578685035f190186811161303757841015613275576131dd8489613063565b51600185019485811161303757858c826001946131fb8f9a8f613063565b511161320c575b50505001936131bb565b61326c918d61323c8361321f8784613063565b519261322b8282613063565b516132368983613063565b52613063565b52858060a01b0361324d8583613063565b511693613236878060a01b036132638585613063565b51169183613063565b525f8c82613202565b94919895600191979894935001916130a9565b50509150915090565b6314f867c760e21b5f5260045ffd5b6132de906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612e8e565b565b906132ea826136ef565b60125f516020613c215f395f51905f52540180549261330884612f15565b916133166040519384612e8e565b848352601f1961332586612f15565b0136602085013761333585612f15565b946133436040519687612e8e565b808652601f1961335282612f15565b013660208801375f925f925b828410613372575050505080825283529190565b909192936133a76133ae84613387888661369e565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b5090613779565b156133f757836133d3916133c2848a613063565b6001600160a01b03821690526137d2565b6133dd828a613063565b526001810180911161303757600190945b0192919061335e565b50936001906133ee565b9061342d816133a761102660125f516020613c215f395f51905f52540160018060a01b038716906139c0565b1561343e5761343b916137d2565b90565b50505f90565b6001600160a01b031680156134a2575f516020613be15f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612cf2575f91613509575b50156134fa57565b630e7fea9d60e01b5f5260045ffd5b613522915060203d602011612102576120f48183612e8e565b5f6134f2565b90816020910312612b6057516001600160401b0381168103612b605790565b90816020910312612b60575165ffffffffffff81168103612b605790565b65ffffffffffff916135836110266001600160a01b038316846139c0565b91949094169384159081156135dd575b506135ce576135cb9365ffffffffffff60301b6135af4261394c565b60301b161760609190911b6001600160601b03191617916136cd565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f613593565b65ffffffffffff9161360d6110266001600160a01b038316846139c0565b949091161515908161365a575b5061364b576135cb9265ffffffffffff6136334261394c565b1660609190911b6001600160601b03191617916136cd565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f61361a565b5f516020613be15f395f51905f52546001600160a01b0316330361368b57565b63118cdaa760e01b5f523360045260245ffd5b91906136ac60029184613aa3565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b61343b929160018060a01b031691825f526002820160205260405f2055613b93565b5f516020613c215f395f51905f52549065ffffffffffff61370f4261394c565b1665ffffffffffff8216101561376257613746915465ffffffffffff808260601c169160901c168082105f14613771575090613019565b65ffffffffffff806137574261394c565b169116111561376257565b63686c69fd60e01b5f5260045ffd5b905090613019565b65ffffffffffff16801515929190836137bf575b508261379857505090565b65ffffffffffff16801592509082156137b057505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f61378d565b5f516020613c215f395f51905f52546015810180546004909201545f95948694602093869391905b86881061380b575050505050505050565b90919293949596986133a7613824866133878d8661369e565b1561394257604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612cf2576138c09189915f91613925575b506040519061386e8383612e8e565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f2c565b03916001600160a01b03165afa908115612cf2575f916138f7575b506138e890600192613077565b995b01969594939291906137fa565b90508781813d831161391e575b61390e8183612e8e565b81010312612b60575160016138db565b503d613904565b61393c9150823d84116107c4576107b68183612e8e565b5f61385f565b50986001906138ea565b65ffffffffffff81116139645765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061343b91815f52600281016020525f6040812055613ab8565b60ff5f516020613c415f395f51905f525460401c16156139b157565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f20549181831591826139f7575b50506139e5575090565b63015ab34360e11b5f5260045260245ffd5b613a0f92506001915f520160205260405f2054151590565b15815f6139db565b905f8091602081519101845af48080613a90575b15613a4b5750506040513d81523d5f602083013e60203d82010160405290565b15613a7057639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15613a81576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580613a2b5750813b1515613a2b565b8054821015612fd7575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b8b575f1981018181116130375782545f1981019190821161303757818103613b40575b50505080548015613b2c575f190190613b0d8282613aa3565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b76613b50613b609386613aa3565b90549060031b1c92839286613aa3565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613af4565b505050505f90565b5f82815260018201602052604090205461343e57805490600160401b821015612e7a5782613bcb613b60846001809601855584613aa3565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21773:159:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;7795:17;;2376:21773;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;2378:1:52;2376:21773:159;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;2376:21773:159;;;;;;;;;;;;;;;9049:10;9020:20;-1:-1:-1;;;;;;;;;;;2376:21773:159;9020:20;9049:10;;;:::i;2376:21773::-;;;;;;;-1:-1:-1;;2376:21773:159;;;;;13755:372;2376:21773;;:::i;:::-;;;:::i;:::-;22891:2;;;;:::i;:::-;13755:372;:::i;:::-;2376:21773;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;7482:21;;2376:21773;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7368:30:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;7368:30;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;7587:21;2376:21773;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7242:34:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;7242:34;2376:21773;;;;;;;;;;;;;;;;;;;;;;7693:22;-1:-1:-1;;;;;;;;;;;2376:21773:159;7693:22;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;:::i;:::-;;;;;;7927:20;;;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;16169:38;;2376:21773;-1:-1:-1;;;;;2376:21773:159;16155:10;:52;16151:108;;2376:21773;;;;16274:9;16285:18;;;;;;2376:21773;;;16305:3;16357:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;8847:28:49;;16387:17:159;;-1:-1:-1;;;;;16414:11:159;2376:21773;16414:11;:::i;:::-;2376:21773;8847:28:49;5238:14;5142:129;-1:-1:-1;2376:21773:159;5238:14:49;2376:21773:159;;;-1:-1:-1;2376:21773:159;;5238:26:49;;5142:129;;8847:28;16386:40:159;16382:106;;2376:21773;;-1:-1:-1;;;;;16522:11:159;;;:::i;:::-;2376:21773;;;;;;;;;;16515:29;;;;;;;;;2376:21773;16515:29;;;;;;;16305:3;2376:21773;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16502:83;;16559:11;2376:21773;;16502:83;;2376:21773;;;;;;;;;;;:::i;:::-;16502:83;;-1:-1:-1;;;;;2376:21773:159;16502:83;;;;;;;2376:21773;16502:83;;;16305:3;;2376:21773;16274:9;;16502:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21773;;;;;;;;;16515:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21773;;;;;;;;;16382:106;-1:-1:-1;;;16453:20:159;;2376:21773;15776:20;16453;16151:108;-1:-1:-1;;;16230:18:159;;2376:21773;8423:18;16230;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;4301:16:18;2376:21773:159;;4724:16:18;;:34;;;;2376:21773:159;4803:1:18;4788:16;:50;;;;2376:21773:159;4853:13:18;:30;;;;2376:21773:159;4849:91:18;;;2376:21773:159;4803:1:18;-1:-1:-1;;;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;4977:67:18;;2376:21773:159;;;-1:-1:-1;;;;;2376:21773:159;;;;;;6959:1:18;;6891:76;;:::i;:::-;;;:::i;6959:1::-;2376:21773:159;;;;;;;;:::i;:::-;;;;;;;;;;2324:62:52;;:::i;:::-;1794:178:36;;;;-1:-1:-1;;1794:178:36;;;2376:21773:159;1794:178:36;;-1:-1:-1;;1794:178:36;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;3392:19;2376:21773;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;3447:29;2376:21773;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3510:27;2376:21773;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3568:24;2376:21773;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3622:23;2376:21773;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3682:30;2376:21773;;;;;;;;;4803:1:18;3655:24:159;;2376:21773;;;;;;;;;;3722:27;;;2376:21773;3752:33;2376:21773;;;3823:31;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;-1:-1:-1;;;;;3795:25:159;;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;;;;;;;3888:27;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3963:18;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;3948:12;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;4014:4;3510:27;2376:21773;;3991:12;;2376:21773;4076:19;2376:21773;4060:13;;;2376:21773;4117:14;2376:21773;;;;;;;;4106:8;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;4156:17;2376:21773;;;;;;;;4142:11;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;3022:1;;:::i;:::-;;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;3022:1;;:::i;:::-;;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;4201:33;;:::i;:::-;2376:21773;4184:69;;;;;2376:21773;;;;;;;;;;;;;4184:69;;;;;;;;;;2376:21773;-1:-1:-1;;;;;;4289:35:159;;:::i;:::-;2376:21773;4263:91;;;;;2376:21773;;;3392:19;2376:21773;;;;;;;;;4263:91;;4014:4;2376:21773;4263:91;;2376:21773;4263:91;;;;;;;;2376:21773;;;;;;;;17659:17;2376:21773;;;;;;;;;4803:1:18;2376:21773:159;;;;;;;;;;;18048:44;;2376:21773;;;;;3510:27;2376:21773;;18323:48;2376:21773;;;;;;;;18611:45;2376:21773;;3682:30;2376:21773;;;;18786:21;;2376:21773;;;;;;19058:28;;2376:21773;;;19165:44;;;;:::i;:::-;2376:21773;19165:71;2376:21773;;3795:25;2376:21773;;19507:32;2376:21773;;5064:101:18;;2376:21773:159;;;5064:101:18;2376:21773:159;5140:14:18;2376:21773:159;-1:-1:-1;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;4803:1:18;2376:21773:159;;5140:14:18;2376:21773:159;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;3022:1;2376:21773;;3392:19;2376:21773;;;-1:-1:-1;;;2376:21773:159;;;;;4263:91;;;;;:::i;:::-;2376:21773;;4263:91;;;;2376:21773;;;;4263:91;2376:21773;;;;;;;;;4184:69;;;;;:::i;:::-;2376:21773;;4184:69;;;;2376:21773;;;;;;;;;;;;4977:67:18;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;4977:67:18;;4849:91;-1:-1:-1;;;4906:23:18;;2376:21773:159;6496:23:18;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;2376:21773:159;;;;;;;;;;;;;;7110:36;-1:-1:-1;;;;;;;;;;;2376:21773:159;7110:36;2376:21773;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;9302:11;;;;3545:23:169;24034:47:48;2376:21773:159;9302:11;24034:47:48;:::i;:::-;2376:21773:159;;;;;;1267:2:169;2376:21773:159;;;1289:2:169;2376:21773:159;981:319:169;;3545:23;-1:-1:-1;2376:21773:159;;;9347:17;;2376:21773;-1:-1:-1;9347:76:159;;;;2376:21773;9343:144;;;;21866:50:48;;;;:::i;:::-;;2376:21773:159;;9343:144;-1:-1:-1;;;9446:30:159;;2376:21773;9446:30;;9347:76;2376:21773;837:15:50;;;9387:36:159;837:15:50;;;819:34;837:15;819:34;:::i;:::-;2376:21773:159;;;;;9387:36;;:::i;:::-;2376:21773;;;9368:55;9347:76;;;;2376:21773;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;11727:5;2376:21773;;:::i;:::-;23936:5;;;:::i;:::-;11702:17;-1:-1:-1;;;;;;;;;;;2376:21773:159;11702:17;11727:5;:::i;2376:21773::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;8371:29;;2376:21773;;8371:29;;2376:21773;-1:-1:-1;;;;;2376:21773:159;8357:10;:43;8353:99;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2376:21773:159;10254:8;;;;2376:21773;;;;;;;;;10240:10;:22;10236:71;;2376:21773;;;10342:12;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;10321:33;10317:90;;10417:30;;;;;;2376:21773;10462:13;;10616:8;2376:21773;10852:13;10616:8;;;10852:13;;2376:21773;;;;10457:677;10514:3;10481:24;;2376:21773;;10477:35;;;;;10569:27;;;;:::i;:::-;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;-1:-1:-1;2376:21773:159;;;;5238:14:49;;2376:21773:159;;;;;;5238:26:49;10611:99:159;;2376:21773;;;;10830:58;2376:21773;;;;3750:23:169;2376:21773:159;24034:47:48;2376:21773:159;;;;;;;;;24034:47:48;;:::i;3750:23:169:-;2376:21773:159;;;;-1:-1:-1;;;;;2376:21773:159;;;;;-1:-1:-1;2376:21773:159;-1:-1:-1;2376:21773:159;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10830:58;;;;;2376:21773;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;;;;;:::i;:::-;10830:58;2376:21773;;10830:58;;;;;;:::i;:::-;2376:21773;;;;10987:14;;;2376:21773;;10987:14;;2376:21773;;10987:14;;-1:-1:-1;;;;;2376:21773:159;;;;;10902:106;;;;;2376:21773;;;;;;;;;;;;;;;;;;;10902:106;;2376:21773;10902:106;;2376:21773;;;;;;;;;;;;;;;;;;;:::i;:::-;10902:106;;;;;;;;;;;;;10514:3;2376:21773;;;11043:80;2376:21773;;;;;;;;;;;;;;;11075:47;;;2376:21773;;;;;;11075:47;;;;;;:::i;:::-;11043:80;:::i;:::-;10514:3;2376:21773;10462:13;;;10902:106;;;;;:::i;:::-;2376:21773;;10902:106;;;;;2376:21773;;;;;;;;;10902:106;2376:21773;;;10477:35;;11161:93;10477:35;;;2376:21773;;;;;11193:60;;;;2376:21773;;;;;;;;;;;;11193:60;;;11075:47;11193:60;;:::i;11161:93::-;2376:21773;;;;;11151:104;2376:21773;;;;;;10317:90;-1:-1:-1;;;10377:19:159;;2376:21773;20059:19;10377;10236:71;-1:-1:-1;;;10285:11:159;;2376:21773;9745:11;10285;2376:21773;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;9714:8;;;2376:21773;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;9700:10;:22;;;9696:71;;9790:12;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;9781:21;;9777:78;;9889:27;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;9865:101;;;;;;2376:21773;;;;;;;;;;;;9865:101;;2376:21773;9865:101;;2376:21773;;;;;;;;;;;;;;;9865:101;;;;;;;;2376:21773;;;;;;9994:30;;;;2376:21773;;;;;;;;9994:30;;;2376:21773;9994:30;;:::i;:::-;2376:21773;9984:41;;2376:21773;;;;;;9865:101;;;;;;:::i;:::-;2376:21773;;9865:101;;;;2376:21773;;;;;;;;;9777:78;-1:-1:-1;;;9825:19:159;;2376:21773;20059:19;9825;9696:71;-1:-1:-1;;;9745:11:159;;2376:21773;9745:11;;2376:21773;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;2376:21773:159;;;;;;;-1:-1:-1;;;;;2376:21773:159;3996:40:52;2376:21773:159;;3996:40:52;2376:21773:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;8103:30;;2376:21773;;8103:30;;2376:21773;-1:-1:-1;;;;;2376:21773:159;8089:10;:44;8085:101;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;8085:101;-1:-1:-1;;;8156:19:159;;2376:21773;15296:19;8156;2376:21773;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;6429:44:18;;;;;2376:21773:159;6425:105:18;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;2376:21773:159;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;6959:1:18;;-1:-1:-1;;;;;2376:21773:159;6891:76:18;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;:::i;:::-;;;;;;;;;;2324:62:52;;:::i;:::-;1794:178:36;;;;-1:-1:-1;;1794:178:36;;;2376:21773:159;1794:178:36;;-1:-1:-1;;1794:178:36;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;-1:-1:-1;;;2376:21773:159;-1:-1:-1;;;;;;2376:21773:159;;;;;;;1794:178:36;2376:21773:159;;;;-1:-1:-1;;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;6591:4:18;5101:33:159;;2376:21773;;;6591:4:18;5065:33:159;;2376:21773;;;;;;;;;;4519:1;5183:36;;2376:21773;4519:1;5144:36;;2376:21773;5310:63;5266:34;;;-1:-1:-1;;;;;2376:21773:159;;;;5229:34;;5266;5229;;2376:21773;;;;;;;;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;5310:63;5407:21;;;;2376:21773;5383:21;;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;;;-1:-1:-1;;;;;;2376:21773:159;;;;;;;;5462:21;;;2376:21773;5438:21;;;2376:21773;5518:22;;;;2376:21773;5493:22;;;2376:21773;5570:17;;;;2376:21773;5550:17;;;2376:21773;;;;;;;;;;;5620:20;5597;;;;5620;;2376:21773;;;;;;-1:-1:-1;;5675:20:159;5796;;;;5656:13;5675:20;;;;5656:13;5706:3;2376:21773;;5671:33;;;;;5756:26;5796:36;5756:26;6591:4:18;5756:26:159;;;:::i;:::-;5796:36;;;:::i;:::-;;2376:21773;5656:13;;5671:33;-1:-1:-1;5877:17:159;5992;;;;5671:33;5877:17;5671:33;5905:3;2376:21773;;5873:30;;;;;5955:23;5992:33;5955:23;6591:4:18;5955:23:159;;;:::i;:::-;5992:33;;;:::i;:::-;;2376:21773;5858:13;;5873:30;;-1:-1:-1;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;;;;;;2376:21773:159;6654:20:18;2376:21773:159;;;4519:1;2376:21773;;6654:20:18;2376:21773:159;;;;;;-1:-1:-1;;;;;;2376:21773:159;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;6425:105:18;-1:-1:-1;;;6496:23:18;;2376:21773:159;;6496:23:18;6429:44;4519:1:159;2376:21773;;-1:-1:-1;;;;;2376:21773:159;6448:25:18;;6429:44;;;2376:21773:159;;;;;;;;;;;;;4840:6:19;-1:-1:-1;;;;;2376:21773:159;4831:4:19;4823:23;4819:145;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;4819:145:19;-1:-1:-1;;;4924:29:19;;2376:21773:159;;4924:29:19;2376:21773:159;-1:-1:-1;2376:21773:159;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4417:6:19;2376:21773:159;4408:4:19;4400:23;;;:120;;;;2376:21773:159;4383:251:19;;;2324:62:52;;:::i;:::-;2376:21773:159;;-1:-1:-1;;;5881:52:19;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;5881:52:19;;;;;;;;2376:21773:159;-1:-1:-1;5877:437:19;;-1:-1:-1;;;6243:60:19;;2376:21773:159;;;;;1805:47:11;6243:60:19;5877:437;5975:40;;;-1:-1:-1;;;;;;;;;;;5975:40:19;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;2376:21773:159;;;;;2407:36:11;;;;2376:21773:159;;2458:15:11;:11;;2489:53;;;:::i;2454:148::-;6185:9;;;6181:70;;2376:21773:159;;6181:70:11;-1:-1:-1;;;6221:19:11;;2376:21773:159;;6221:19:11;1744:119;-1:-1:-1;;;1805:47:11;;2376:21773:159;;;1805:47:11;;5971:120:19;-1:-1:-1;;;6042:34:19;;2376:21773:159;;;6042:34:19;;5881:52;;;;2376:21773:159;5881:52:19;;2376:21773:159;5881:52:19;;;;;;2376:21773:159;5881:52:19;;;:::i;:::-;;;2376:21773:159;;;;;5881:52:19;;;;;;;-1:-1:-1;5881:52:19;;4383:251;-1:-1:-1;;;4594:29:19;;2376:21773:159;4594:29:19;;4400:120;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;4478:42:19;;;-1:-1:-1;4400:120:19;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;9146:10;9118:20;-1:-1:-1;;;;;;;;;;;2376:21773:159;9118:20;9146:10;;;:::i;2376:21773::-;;;;;;;-1:-1:-1;;2376:21773:159;;;;11610:5;2376:21773;;:::i;:::-;23936:5;;;:::i;:::-;11584:17;-1:-1:-1;;;;;;;;;;;2376:21773:159;11584:17;11610:5;:::i;2376:21773::-;;;;;;;;;;;;;;;6978:33;-1:-1:-1;;;;;;;;;;;2376:21773:159;6978:33;2376:21773;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;8666:28;;;2376:21773;;;-1:-1:-1;;;8656:60:159;;8705:10;2376:21773;8656:60;;2376:21773;;;;;;8656:60;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;8656:60;;;;;;;;;;;2376:21773;8655:61;;8651:121;;8800:24;;;2376:21773;;;-1:-1:-1;;;8786:76:159;;8705:10;2376:21773;8786:76;;2376:21773;8856:4;8656:60;2376:21773;;;;;;;;8786:76;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;8786:76;;;;;;;;;;;2376:21773;8785:77;;8781:137;;2206:50:169;837:15:50;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;8705:10;8928:11;8705:10;8928:11;;2206:50:169;:::i;:::-;2205:51;2201:103;;2376:21773:159;;2201:103:169;-1:-1:-1;;;2279:14:169;;2376:21773:159;;2279:14:169;8781:137:159;-1:-1:-1;;;8885:22:159;;2376:21773;8885:22;;8786:76;;;;2376:21773;8786:76;2376:21773;8786:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21773;;;;;;;;;8651:121;-1:-1:-1;;;8739:22:159;;2376:21773;8739:22;;8656:60;;;;2376:21773;8656:60;2376:21773;8656:60;;;;;;;:::i;:::-;;;;2376:21773;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;23936:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;11889:8;;;;3545:23:169;24034:47:48;2376:21773:159;11889:8;24034:47:48;:::i;3545:23:169:-;-1:-1:-1;2376:21773:159;;;11928:17;;2376:21773;-1:-1:-1;11928:73:159;;;;2376:21773;11924:138;;;;21866:50:48;;;;:::i;11924:138:159:-;-1:-1:-1;;;12024:27:159;;2376:21773;12024:27;;11928:73;2376:21773;837:15:50;;;11968:33:159;837:15:50;;;819:34;837:15;819:34;:::i;:::-;2376:21773:159;;;;;11968:33;;:::i;:::-;2376:21773;;;11949:52;11928:73;;;;2376:21773;;;;;;;-1:-1:-1;;2376:21773:159;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;15243:30;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;15229:10;:44;15225:101;;15341:9;2376:21773;;15336:726;15369:3;2376:21773;;;;;15352:15;;;;;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;8847:28:49;-1:-1:-1;;;;;15466:18:159;2376:21773;;;15466:18;:::i;:::-;2376:21773;-1:-1:-1;2376:21773:159;;;5238:14:49;;;2376:21773:159;;;;;;5238:26:49;;;5142:129;8847:28;15444:41:159;15440:110;;15569:9;15609:3;15584:16;;;;2376:21773;;;15584:16;:::i;:::-;15580:27;;;;;;;15668:19;15584:16;15668;15584;;;2376:21773;;;15668:16;:::i;:::-;:19;;:::i;:::-;8847:28:49;-1:-1:-1;;;;;15729:15:159;;;:::i;:::-;2376:21773;-1:-1:-1;2376:21773:159;;;5238:14:49;;;2376:21773:159;;;;;;5238:26:49;;;5142:129;8847:28;15710:35:159;15706:109;;2376:21773;;;;;;-1:-1:-1;;;;;15858:15:159;2376:21773;15858:15;:::i;:::-;2376:21773;;;;;;;;;;15851:33;;;;;;;;;;;;;15609:3;15958:12;2376:21773;15958:12;;2376:21773;;15972:18;2376:21773;;;15972:18;:::i;:::-;16010:12;;;2376:21773;;;;;;;;16010:12;;;;2376:21773;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;;;;;;;;;;;;;;;;;15902:135;;2376:21773;15902:135;;2376:21773;;;;;;;;;;;15992:16;2376:21773;;;;;;16010:12;;;2376:21773;;;;;;;;;;;;;;;;:::i;:::-;15902:135;;-1:-1:-1;;;;;2376:21773:159;15902:135;;;;;;;2376:21773;15902:135;;;15609:3;;2376:21773;15569:9;;15902:135;;;;;;;;;;;;;:::i;:::-;;;;;15851:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15580:27;;;2376:21773;15580:27;;2376:21773;15341:9;;;15440:110;-1:-1:-1;;;15512:23:159;;2376:21773;15512:23;;15352:15;;2376:21773;;15225:101;-1:-1:-1;;;15296:19:159;;2376:21773;15296:19;;2376:21773;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;23936:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;19747:11;;;2376:21773;;;-1:-1:-1;;;19737:53:159;;-1:-1:-1;;;;;2376:21773:159;;;;19737:53;;2376:21773;;;;;;;;;;;;;;;19737:53;;;;;;;2376:21773;19737:53;;;2376:21773;19736:54;;19732:109;;2376:21773;;-1:-1:-1;;;19855:35:159;;2376:21773;;;;19855:35;;;;;;;;2376:21773;19855:35;;;2376:21773;19894:25;;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;19855:64;19851:128;;2376:21773;;-1:-1:-1;;;19993:27:159;;2376:21773;;;;19993:27;;;;;;;;2376:21773;19993:27;;;2376:21773;-1:-1:-1;20024:12:159;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;19993:43;19989:100;;2376:21773;;-1:-1:-1;;;20155:30:159;;2376:21773;;;;20155:30;;;;;;;;2376:21773;20155:30;;;2376:21773;;;;;;;;;;;20199:44;;;20195:107;;2376:21773;;-1:-1:-1;;;20350:39:159;;2376:21773;;;;20350:39;;;;;;;;2376:21773;20350:39;;;2376:21773;20349:40;;20345:103;;2376:21773;;-1:-1:-1;;;20500:26:159;;2376:21773;;;;20500:26;;;;;;;;2376:21773;20500:26;;;2376:21773;-1:-1:-1;2376:21773:159;20567:12;;;2376:21773;;;;-1:-1:-1;;;20541:39:159;;;;;2376:21773;20567:12;;-1:-1:-1;;;;;2376:21773:159;;;;;;;20541:39;;;;;;;2376:21773;20541:39;;;2376:21773;-1:-1:-1;20541:60:159;20537:158;;2376:21773;;;;;;;;;;;;;20724:32;;;;;;;;;;;;;2376:21773;-1:-1:-1;;;;;;2376:21773:159;17489:82;;2376:21773;;-1:-1:-1;;;20804:37:159;;2376:21773;;;;20804:37;;;;;;;;;;;;2376:21773;20803:38;;20799:99;;2376:21773;;-1:-1:-1;;;20926:24:159;;2376:21773;;;;20926:24;;;;;;;;;;;;2376:21773;-1:-1:-1;2376:21773:159;;-1:-1:-1;;;20964:23:159;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;20964:23;;;;;;;;;;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;20964:48;20960:111;;2376:21773;;-1:-1:-1;;;21085:36:159;;2376:21773;;;;21085:36;;;;;;;;;;;;2376:21773;21081:98;;;2376:21773;;-1:-1:-1;;;21211:36:159;;2376:21773;;;;21211:36;;;;;;;;;;;;2376:21773;;;;;;;;;;;21261:32;21257:92;;21363:39;2376:21773;21378:24;;;;;2376:21773;;21363:39;;:::i;:::-;2376:21773;21363:60;21359:119;;2376:21773;;-1:-1:-1;;;21492:46:159;;2376:21773;;;;21492:46;;;;;;;;;;;;2376:21773;21541:27;;;;2376:21773;-1:-1:-1;21488:139:159;;2376:21773;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;;;;;;;;;;;;;;;;;21656:58;;2376:21773;21656:58;;2376:21773;;;;;;;;;;;:::i;:::-;21656:58;;;;;;;;;;;;;;2376:21773;-1:-1:-1;;;;;;2376:21773:159;21728:22;;;-1:-1:-1;21820:24:159;;2376:21773;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;:::i;:::-;;;;;;;;;21766:93;;;;;2376:21773;;;;;;;;;;;;;;;;;21766:93;;;2376:21773;21766:93;;2376:21773;;;;;;;;;;;;;;;:::i;:::-;21766:93;;;;;;;;;;;;;21724:299;;;;2376:21773;;-1:-1:-1;;;22109:23:159;;;2376:21773;;;22109:23;;;;;;;;;;;;21724:299;-1:-1:-1;;;;;;2376:21773:159;22109:37;22105:94;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;22315:41;;;2376:21773;;;;;;;;;;;22305:71;;;2376:21773;22305:71;;2376:21773;22305:71;;;;;;;;;;;21724:299;22304:72;;22300:135;;2376:21773;;-1:-1:-1;;;22449:39:159;;;2376:21773;;;22449:39;;;;;;;;;;;;21724:299;-1:-1:-1;;;;;;2376:21773:159;22449:49;22445:114;;2376:21773;;-1:-1:-1;;;22573:41:159;;;2376:21773;;;22573:41;;;;;;;;;-1:-1:-1;;;;;22573:41:159;21541:27;22573:41;;;;;21724:299;2376:21773;;;22573:46;22569:118;;11446:17;2206:50:169;837:15:50;;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;1780:2:169;2376:21773:159;;;;-1:-1:-1;;;;;;2376:21773:159;1707:76:169;;11446:17:159;2206:50:169;:::i;22569:118:159:-;-1:-1:-1;;;22642:34:159;;2376:21773;22642:34;;22573:41;;;;;;-1:-1:-1;22573:41:159;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21773;;;;;;;;;22445:114;-1:-1:-1;;;22521:27:159;;2376:21773;22521:27;;22449:39;;;;;;;;;;;;;;:::i;:::-;;;;;2376:21773;;;;;;;;;22300:135;-1:-1:-1;;;22399:25:159;;2376:21773;22399:25;;22305:71;;;;;;;;;;;;;;:::i;:::-;;;;22105:94;-1:-1:-1;;;22169:19:159;;2376:21773;22169:19;;22109:23;;;;;;;;;;;;;;:::i;:::-;;;;21766:93;;;;;:::i;:::-;2376:21773;;21766:93;;;;21724:299;21892:24;;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;21880:36;;-1:-1:-1;21724:299:159;;-1:-1:-1;21876:147:159;-1:-1:-1;;;21994:18:159;;2376:21773;21994:18;;21656:58;;;;;;;;;;;;;;:::i;:::-;;;;21488:139;-1:-1:-1;;;21591:25:159;;2376:21773;21591:25;;21492:46;;;2376:21773;21492:46;;2376:21773;21492:46;;;;;;2376:21773;21492:46;;;:::i;:::-;;;2376:21773;;;;;21492:46;;;2376:21773;-1:-1:-1;2376:21773:159;;21492:46;;;-1:-1:-1;21492:46:159;;21359:119;-1:-1:-1;;;21446:21:159;;2376:21773;21446:21;;21257:92;-1:-1:-1;;;21316:22:159;;2376:21773;21316:22;;21211:36;;;;2376:21773;21211:36;2376:21773;21211:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21081:98;-1:-1:-1;;;21144:24:159;;2376:21773;21144:24;;21085:36;;;;2376:21773;21085:36;2376:21773;21085:36;;;;;;;:::i;:::-;;;;20960:111;-1:-1:-1;;;21035:25:159;;2376:21773;21035:25;;20964:23;-1:-1:-1;;;;;20964:23:159;;;;;;2376:21773;20964:23;2376:21773;20964:23;;;;;;;:::i;:::-;;;;;;20926:24;;;;2376:21773;20926:24;2376:21773;20926:24;;;;;;;:::i;:::-;;;;20799:99;-1:-1:-1;;;20864:23:159;;2376:21773;20864:23;;20804:37;;;;2376:21773;20804:37;2376:21773;20804:37;;;;;;;:::i;:::-;;;;17489:82;-1:-1:-1;;;;;;17534:26:159;;2376:21773;17534:26;;20724:32;;;;2376:21773;20724:32;2376:21773;20724:32;;;;;;;:::i;:::-;;;;20537:158;20617:67;;;;;2376:21773;;-1:-1:-1;;;20617:67:159;;2376:21773;;20617:67;;2376:21773;;;-1:-1:-1;;2376:21773:159;;;;;20617:67;2376:21773;;20617:67;;;;;;;;;20537:158;;;;20617:67;;;;;2376:21773;20617:67;;:::i;:::-;2376:21773;;;20617:67;;;2376:21773;;;;;;;;;20541:39;;;2376:21773;20541:39;;2376:21773;20541:39;;;;;;2376:21773;20541:39;;;:::i;:::-;;;2376:21773;;;;;20541:39;;;;;;-1:-1:-1;20541:39:159;;20500:26;;;;2376:21773;20500:26;2376:21773;20500:26;;;;;;;:::i;:::-;;;;20345:103;20412:25;;;2376:21773;20412:25;2376:21773;;20412:25;20350:39;;;;2376:21773;20350:39;2376:21773;20350:39;;;;;;;:::i;:::-;;;;20195:107;20266:25;;;2376:21773;20266:25;2376:21773;;20266:25;20155:30;;;;2376:21773;20155:30;2376:21773;20155:30;;;;;;;:::i;:::-;;;;19989:100;20059:19;;;2376:21773;20059:19;2376:21773;;20059:19;19993:27;;;;2376:21773;19993:27;2376:21773;19993:27;;;;;;;:::i;:::-;;;;19851:128;19942:26;;;2376:21773;19942:26;2376:21773;;19942:26;19855:35;;;;2376:21773;19855:35;2376:21773;19855:35;;;;;;;:::i;:::-;;;;19732:109;19813:17;;;2376:21773;19813:17;2376:21773;;19813:17;19737:53;;;;2376:21773;19737:53;2376:21773;19737:53;;;;;;;:::i;:::-;;;;2376:21773;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21773:159;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;-1:-1:-1;2376:21773:159;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;-1:-1:-1;;2376:21773:159;;;;:::o;:::-;3022:1;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;3022:1;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12107:1642::-;;12224:17;;2376:21773;;12353:29;;;:::i;:::-;2376:21773;;;12397:39;;;;12393:92;;12240:1;20584:17;;2376:21773;;;;;12573:368;12593:5;;;;;;13008:26;;;;12647:1;20584:17;;;2376:21773;;;;;;;;13064:25;;;;:::i;:::-;2376:21773;13104:25;13099:188;13159:3;2376:21773;;13131:26;;;;;13182:9;;;;;:::i;:::-;2376:21773;13182:22;13178:66;;12647:1;2376:21773;;;;;;;12647:1;13257:19;13159:3;2376:21773;13104:25;;;13178:66;13224:5;;;;;;;;;13099:188;12647:1;13301:18;;13297:316;;13099:188;13623:87;;;;;12107:1642;:::o;13297:316::-;2376:21773;;13464:20;;;2376:21773;;;;;;;;;;13464:20;;;;;;;:::i;:::-;2376:21773;13454:31;;2376:21773;;;;;13570:27;2376:21773;;13570:27;;:::i;:::-;-1:-1:-1;;2376:21773:159;;;;;;;13517:85;;-1:-1:-1;;;;;2376:21773:159;13554:48;;;;:::i;:::-;2376:21773;;;13517:85;;:::i;:::-;2376:21773;13297:316;;;;;2376:21773;;;;12240:1;2376:21773;;;;;12240:1;2376:21773;13131:26;;;;;;;;;;;;12600:3;12624:13;;;;;;;;;12240:1;12619:312;12654:3;2376:21773;;;;;-1:-1:-1;;2376:21773:159;;;;;;12639:13;;;;;12681:9;;;;:::i;:::-;2376:21773;12647:1;2376:21773;;;;;;;;12693:13;;;12647:1;12693:13;;;;;;:::i;:::-;2376:21773;-1:-1:-1;12677:240:159;;12654:3;;;;2376:21773;12624:13;;;12677:240;12807:91;2376:21773;12760:13;12730:55;12760:13;;;;;:::i;:::-;2376:21773;12775:9;;;;;:::i;:::-;2376:21773;12730:55;;;;:::i;:::-;2376:21773;12730:55;:::i;:::-;2376:21773;;;;;;12855:22;;;;:::i;:::-;2376:21773;;;12807:91;2376:21773;;;;;12879:18;;;;:::i;:::-;2376:21773;;;12807:91;;:::i;:::-;2376:21773;12677:240;;;;;12639:13;;;;;12647:1;12639:13;;;;;;2376:21773;12578:13;;;12393:92;12452:22;;;;;;;:::o;2376:21773::-;;;;12240:1;2376:21773;;12240:1;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;:::i;:::-;:::o;14170:940::-;;22891:2;;;:::i;:::-;14433:11;-1:-1:-1;;;;;;;;;;;2376:21773:159;14433:11;2376:21773;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;:::i;:::-;;;;;;;-1:-1:-1;14558:9:159;-1:-1:-1;14553:416:159;14569:24;;;;;;14979:125;;;;;;;;;14322:23;14170:940;:::o;14595:3::-;3255:12:169;;;;3308:14;14714:35:159;3255:12:169;;;;;:::i;:::-;3308:14;;;2376:21773:159;;;;;;1267:2:169;2376:21773:159;;;1289:2:169;2376:21773:159;981:319:169;;3308:14;14714:35:159;;;:::i;:::-;14713:36;14709:83;;14806:39;14881:47;14806:39;;;;;:::i;:::-;-1:-1:-1;;;;;2376:21773:159;;;;14881:47;:::i;:::-;14859:69;;;;:::i;:::-;2376:21773;14957:1;2376:21773;;;;;;;14957:1;14942:16;14595:3;14558:9;2376:21773;14558:9;;;;;14709:83;14769:8;;14957:1;14769:8;;;13755:372;;13977:43;2376:21773;3545:23:169;24034:47:48;13923:20:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;13923:20;2376:21773;;;;;;;24034:47:48;;:::i;13977:43:159:-;13976:44;13972:83;;14073:47;;;:::i;:::-;13755:372;:::o;13972:83::-;14036:8;;-1:-1:-1;14036:8:159;:::o;3426:215:52:-;-1:-1:-1;;;;;2376:21773:159;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;2376:21773:159;;;;;;;-1:-1:-1;;;;;2376:21773:159;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;2376:21773:159;;3530:1:52;3555:31;23966:181:159;2376:21773;;-1:-1:-1;;;24031:61:159;;2968:4;24031:61;;;2376:21773;24081:10;2968:4;;;2376:21773;;2968:4;;2376:21773;;24031:61;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;24031:61;;;;;;;2968:4;24031:61;;;23966:181;24030:62;;24026:115;;23966:181::o;24026:115::-;24115:15;;;2968:4;24115:15;24031:61;2968:4;24115:15;24031:61;;;;2968:4;24031:61;2968:4;24031:61;;;;;;;:::i;:::-;;;;2376:21773;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;2666:351:169:-;2376:21773:159;;2819:23:169;24034:47:48;-1:-1:-1;;;;;2376:21773:159;;24034:47:48;;:::i;2819:23:169:-;2376:21773:159;;;;;2857:16:169;;;:37;;;;;2666:351;2853:87;;;2950:60;837:15:50;-1:-1:-1;;;819:34:50;837:15;819:34;:::i;:::-;1756:2:169;2376:21773:159;;1707:52:169;1780:2;2376:21773:159;;;;-1:-1:-1;;;;;;2376:21773:159;1707:76:169;;2950:60;:::i;:::-;;2666:351::o;2853:87::-;2917:12;;;-1:-1:-1;2917:12:169;;-1:-1:-1;2917:12:169;2857:37;2376:21773:159;;;;2877:17:169;;2857:37;;;2316:344;2376:21773:159;;2468:23:169;24034:47:48;-1:-1:-1;;;;;2376:21773:159;;24034:47:48;;:::i;2468:23:169:-;2376:21773:159;;;;2506:16:169;;:37;;;;2316:344;2502:91;;;2603:50;837:15:50;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;1780:2:169;2376:21773:159;;;;-1:-1:-1;;;;;;2376:21773:159;1707:76:169;;2603:50;:::i;2502:91::-;2566:16;;;-1:-1:-1;2566:16:169;;-1:-1:-1;2566:16:169;2506:37;2376:21773:159;;;;2526:17:169;2506:37;;;2679:162:52;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;2376:21773:159;;-1:-1:-1;2784:40:52;23141:242:48;;;5894:18:49;5065:11:48;23141:242;5894:18:49;;:::i;:::-;2376:21773:159;;;;;;;;-1:-1:-1;2376:21773:159;5065:11:48;2376:21773:159;;;-1:-1:-1;2376:21773:159;;;;;;;;;23321:55:48;23141:242;:::o;21425:182::-;7939:23:49;21425:182:48;;2376:21773:159;;;;;;;;-1:-1:-1;2376:21773:159;3157:11:48;;;2376:21773:159;;;-1:-1:-1;2376:21773:159;;7939:23:49;:::i;22918:408:159:-;-1:-1:-1;;;;;;;;;;;2376:21773:159;837:15:50;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;;;;23022:22;;23018:80;;23230:16;2376:21773;;;;;;;;;;;;23129:42;;;:87;:42;;;:87;;23230:16;:::i;:::-;2376:21773;837:15:50;819:34;837:15;819:34;:::i;:::-;2376:21773:159;;;23230:36;;23226:94;;22918:408::o;23226:94::-;23067:20;;;-1:-1:-1;23289:20:159;;-1:-1:-1;23289:20:159;23129:87;;;;23230:16;:::i;17170:208::-;2376:21773;;17289:16;;;;17170:208;;17289:16;:37;;17170:208;17289:82;;;;17282:89;;17170:208;:::o;17289:82::-;2376:21773;;17331:17;;;-1:-1:-1;2376:21773:159;17331:39;;;;17289:82;;17170:208;:::o;17331:39::-;2376:21773;;-1:-1:-1;17352:18:159;;-1:-1:-1;17170:208:159;:::o;17289:37::-;2376:21773;;;-1:-1:-1;17309:17:159;;-1:-1:-1;17289:37:159;;;16608:556;-1:-1:-1;;;;;;;;;;;2376:21773:159;16787:8;;;2376:21773;;17071:25;17106:12;;;2376:21773;;;16608:556;2376:21773;;;;;;;16608:556;16783:21;;;;;;16608:556;;;;;;;;:::o;16806:3::-;3255:12:169;;;;;;;;3308:14;16937:53:159;3255:12:169;;;;;:::i;16937:53:159:-;16936:54;16932:101;;2376:21773;;-1:-1:-1;;;17071:25:159;;2376:21773;;;;;17071:25;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;17071:25;;;;;;;2376:21773;17071:25;;;2376:21773;17071:25;;;16806:3;2376:21773;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17056:91:159;;17071:25;17056:91;;2376:21773;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17056:91;;-1:-1:-1;;;;;2376:21773:159;17056:91;;;;;;;2376:21773;17056:91;;;16806:3;17047:100;;;2376:21773;17047:100;;:::i;:::-;16806:3;16772:9;2376:21773;16772:9;;;;;;;;;17056:91;;;;;;;;;;;;;;;;:::i;:::-;;;2376:21773;;;;;;17056:91;;;;;;;17071:25;;;;;;;;;;;;;;:::i;:::-;;;;16932:101;17010:8;;2376:21773;17010:8;;;14293:213:46;2376:21773:159;14371:24:46;;14367:103;;2376:21773:159;;14293:213:46;:::o;14367:103::-;14418:41;;;;;14449:2;14418:41;2376:21773:159;;;;14418:41:46;;3391:164:48;;8233:26:49;3391:164:48;2376:21773:159;-1:-1:-1;2376:21773:159;3494:11:48;;;2376:21773:159;;-1:-1:-1;2376:21773:159;;;;8233:26:49;:::i;7082:141:18:-;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;5687:274:48;;2376:21773:159;-1:-1:-1;2376:21773:159;5804:11:48;;;2376:21773:159;;;-1:-1:-1;2376:21773:159;;5834:10:48;;;;:33;;;;5687:274;5830:103;;;;5942:12;5687:274;:::o;5830:103::-;5890:32;;;-1:-1:-1;5890:32:48;;2376:21773:159;;-1:-1:-1;5890:32:48;5834:33;8847:28:49;;;5238:14;5142:129;-1:-1:-1;2376:21773:159;5238:14:49;2376:21773:159;;;-1:-1:-1;2376:21773:159;;5238:26:49;;5142:129;;8847:28;5848:19:48;5834:33;;;;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;2376:21773:159;;;;5045:24:25;2376:21773:159;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;2376:21773:159;;;-1:-1:-1;2376:21773:159;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;;2376:21773:159;;;;;;;;-1:-1:-1;2376:21773:159;;-1:-1:-1;2376:21773:159;;;-1:-1:-1;2376:21773:159;:::o;3112:1368:49:-;;3307:14;;;2376:21773:159;;;;;;;;;;;3343:13:49;;;3339:1135;3343:13;;;-1:-1:-1;;2376:21773:159;;;;;;;;;-1:-1:-1;;2376:21773:159;;;20584:17;2376:21773;;;;3818:23:49;;;3814:378;;3339:1135;2376:21773:159;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;;;;20584:17;;2376:21773;;;;;;;;;;;;;;;;;;3307:14:49;4409:11;:::o;2376:21773:159:-;;;;;;;;;;;;3814:378:49;2376:21773:159;3881:22:49;4002:23;3881:22;;;:::i;:::-;2376:21773:159;;;;;;4002:23:49;;;;;:::i;:::-;2376:21773:159;;;;;;;;;;20584:17;;;2376:21773;;;;;;;;;;;;;;;;;;;3814:378:49;;;;;3339:1135;4451:12;;;;2376:21773:159;4451:12:49;:::o;2538:406::-;-1:-1:-1;2376:21773:159;;;5238:14:49;;;2376:21773:159;;;;;;2622:21:49;;2376:21773:159;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2817:14:49;2376:21773:159;;;;;;;2873:11:49;:::o","linkReferences":{},"immutableReferences":{"1929":[{"start":7265,"length":32},{"start":7485,"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.35+commit.47b9dedd\"},\"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 a 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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e\",\"dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"dependencies/symbiotic-core-main/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0x02050a27f2a82a20ef6e7e01e7fee06446b4203c36095e17f97c0ddb970085cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58c1bbf419cae523bc6005a9a26b6229b5609eab6df78c702c851087b1b767ef\",\"dweb:/ipfs/QmSf3tk6mJooVbaxsf6Hxtky8E9ZeZhwBF4tEXiNZTgXqz\"]},\"dependencies/symbiotic-core-main/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8\",\"dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]},\"dependencies/symbiotic-core-main/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x9a5e1c1e4a7ac7efb38bef2c1fdf7291bab50f0132254e785b369108d824644a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24eee610901bd2c1cd13bb34e947a0f5ee3c35b9955b47ce31413ceccd1364f7\",\"dweb:/ipfs/QmNT85tdWph5XaPUDnL9HXbAEW3yiQhCHkkZCCdvGpkyQq\"]},\"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8\",\"dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9\"]},\"dependencies/symbiotic-core-main/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x042cca2276f023a1ca4602b61705f8386947b61dddf03ffa5bee24123e6b1a3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96bfbc31d810dfe87891edeadc14b93bd4bf385047ab4c59e99a92ab7b6e9505\",\"dweb:/ipfs/QmdYGSSPLtuui8rYqWMSgtqvXFVZcS6TLnZKJx1CxKLbTm\"]},\"dependencies/symbiotic-core-main/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x24adabf74f067faa60d944c14419ca1af2ff9b599158e47e4c475ebc69e91cbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9588876a5c3c710e3139ff40fc5b206a4a789a01dcae3b515cff09856cac5c1f\",\"dweb:/ipfs/QmfHuuxVXvF9og6zPZrS2V39bMe4suBjTG3BxxMTKhijYQ\"]},\"dependencies/symbiotic-core-main/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0x29d693b9e936a82cb8e239565e2b06cff3e9670457dce0dc8e0f9f4076cf728c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc79dc5ff137023d7967c9a8499d1cb05baf9260695745bef2633a284ac06200\",\"dweb:/ipfs/QmNoNXRCUmJw5bpemrNMvMvbcPXqnkqmvXaLszF8YwdM6M\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78\",\"dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0\",\"dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC\"]},\"dependencies/symbiotic-rewards-main/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xc36e2cdf8ac28b45888181e3db591b257411e42e2c50b83fe0e47575b677ae7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63a8b272ab0c5d3252732f9ce0671412bd3c53092b026dc03b9286501dae2392\",\"dweb:/ipfs/QmSizhBvhFUo6APqRPtA1DJQ9TR9JA6ZyYnA5XA56ddMRw\"]},\"dependencies/symbiotic-rewards-main/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6\",\"dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD\"]},\"dependencies/symbiotic-rewards-main/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85\",\"dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59\",\"dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/Middleware.sol\":{\"keccak256\":\"0xa92bb45cdc5164cc097448b3e1d970b135782da82d9a306e71fcfd2d951990df\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://f8b56f1901805d17d3b8be48a05defe94c873e9b3f9abcc6f794a1465fad4752\",\"dweb:/ipfs/QmRqZLwBE2VdDrcyAZNd927rQ6EQNNS7UTjqMxbijPW5Us\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5\",\"dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd\",\"dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol":{"keccak256":"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402","urls":["bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e","dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"dependencies/symbiotic-core-main/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0x02050a27f2a82a20ef6e7e01e7fee06446b4203c36095e17f97c0ddb970085cf","urls":["bzz-raw://58c1bbf419cae523bc6005a9a26b6229b5609eab6df78c702c851087b1b767ef","dweb:/ipfs/QmSf3tk6mJooVbaxsf6Hxtky8E9ZeZhwBF4tEXiNZTgXqz"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IEntity.sol":{"keccak256":"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2","urls":["bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8","dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x9a5e1c1e4a7ac7efb38bef2c1fdf7291bab50f0132254e785b369108d824644a","urls":["bzz-raw://24eee610901bd2c1cd13bb34e947a0f5ee3c35b9955b47ce31413ceccd1364f7","dweb:/ipfs/QmNT85tdWph5XaPUDnL9HXbAEW3yiQhCHkkZCCdvGpkyQq"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791","urls":["bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8","dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/service/IOptInService.sol":{"keccak256":"0x042cca2276f023a1ca4602b61705f8386947b61dddf03ffa5bee24123e6b1a3e","urls":["bzz-raw://96bfbc31d810dfe87891edeadc14b93bd4bf385047ab4c59e99a92ab7b6e9505","dweb:/ipfs/QmdYGSSPLtuui8rYqWMSgtqvXFVZcS6TLnZKJx1CxKLbTm"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x24adabf74f067faa60d944c14419ca1af2ff9b599158e47e4c475ebc69e91cbb","urls":["bzz-raw://9588876a5c3c710e3139ff40fc5b206a4a789a01dcae3b515cff09856cac5c1f","dweb:/ipfs/QmfHuuxVXvF9og6zPZrS2V39bMe4suBjTG3BxxMTKhijYQ"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0x29d693b9e936a82cb8e239565e2b06cff3e9670457dce0dc8e0f9f4076cf728c","urls":["bzz-raw://fc79dc5ff137023d7967c9a8499d1cb05baf9260695745bef2633a284ac06200","dweb:/ipfs/QmNoNXRCUmJw5bpemrNMvMvbcPXqnkqmvXaLszF8YwdM6M"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol":{"keccak256":"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d","urls":["bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78","dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1","urls":["bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0","dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC"],"license":"MIT"},"dependencies/symbiotic-rewards-main/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xc36e2cdf8ac28b45888181e3db591b257411e42e2c50b83fe0e47575b677ae7d","urls":["bzz-raw://63a8b272ab0c5d3252732f9ce0671412bd3c53092b026dc03b9286501dae2392","dweb:/ipfs/QmSizhBvhFUo6APqRPtA1DJQ9TR9JA6ZyYnA5XA56ddMRw"],"license":"MIT"},"dependencies/symbiotic-rewards-main/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2","urls":["bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6","dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD"],"license":"MIT"},"dependencies/symbiotic-rewards-main/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d","urls":["bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85","dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c","urls":["bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59","dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Middleware.sol":{"keccak256":"0xa92bb45cdc5164cc097448b3e1d970b135782da82d9a306e71fcfd2d951990df","urls":["bzz-raw://f8b56f1901805d17d3b8be48a05defe94c873e9b3f9abcc6f794a1465fad4752","dweb:/ipfs/QmRqZLwBE2VdDrcyAZNd927rQ6EQNNS7UTjqMxbijPW5Us"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a","urls":["bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5","dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153","urls":["bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd","dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":80082,"exportedSymbols":{"EnumerableMap":[16925],"Gear":[87300],"IAccessControl":[82],"IBaseDelegator":[68884],"IDefaultOperatorRewards":[74569],"IDefaultStakerRewards":[74763],"IEntity":[68478],"IMiddleware":[76902],"IMigratableEntity":[68586],"INetworkMiddlewareService":[69372],"INetworkRegistry":[68376],"IOptInService":[69498],"IRegistry":[68710],"IVault":[70234],"IVetoSlasher":[69896],"MapWithTimeData":[87588],"Middleware":[80081],"OwnableUpgradeable":[19465],"ReentrancyGuardTransient":[6594],"SlotDerivation":[6724],"StorageSlot":[6848],"Subnetwork":[68356],"Time":[18907],"UUPSUpgradeable":[2079]},"nodeType":"SourceUnit","src":"114:24036:159","nodes":[{"id":77814,"nodeType":"PragmaDirective","src":"114:24:159","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":77816,"nodeType":"ImportDirective","src":"140:101:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":77815,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77818,"nodeType":"ImportDirective","src":"242:81:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":83,"symbolAliases":[{"foreign":{"id":77817,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"250:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77820,"nodeType":"ImportDirective","src":"324:88:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":77819,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"332:15:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77822,"nodeType":"ImportDirective","src":"413:100:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":6595,"symbolAliases":[{"foreign":{"id":77821,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"421:24:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77824,"nodeType":"ImportDirective","src":"514:80:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":77823,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"522:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77826,"nodeType":"ImportDirective","src":"595:74:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":77825,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"603:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77828,"nodeType":"ImportDirective","src":"670:86:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":16926,"symbolAliases":[{"foreign":{"id":77827,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16925,"src":"678:13:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77830,"nodeType":"ImportDirective","src":"757:66:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":18908,"symbolAliases":[{"foreign":{"id":77829,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"765:4:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77832,"nodeType":"ImportDirective","src":"824:48:159","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":76903,"symbolAliases":[{"foreign":{"id":77831,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"832:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77834,"nodeType":"ImportDirective","src":"873:44:159","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":87301,"symbolAliases":[{"foreign":{"id":77833,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"881:4:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77836,"nodeType":"ImportDirective","src":"918:66:159","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":87589,"symbolAliases":[{"foreign":{"id":77835,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87588,"src":"926:15:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77838,"nodeType":"ImportDirective","src":"985:81:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":68357,"symbolAliases":[{"foreign":{"id":77837,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68356,"src":"993:10:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77840,"nodeType":"ImportDirective","src":"1067:84:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":68377,"symbolAliases":[{"foreign":{"id":77839,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68376,"src":"1075:16:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77842,"nodeType":"ImportDirective","src":"1152:73:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":68479,"symbolAliases":[{"foreign":{"id":77841,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68478,"src":"1160:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77844,"nodeType":"ImportDirective","src":"1226:93:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":68587,"symbolAliases":[{"foreign":{"id":77843,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68586,"src":"1234:17:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77846,"nodeType":"ImportDirective","src":"1320:77:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":68711,"symbolAliases":[{"foreign":{"id":77845,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68710,"src":"1328:9:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77848,"nodeType":"ImportDirective","src":"1398:90:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":68885,"symbolAliases":[{"foreign":{"id":77847,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"1406:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77850,"nodeType":"ImportDirective","src":"1489:110:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":69373,"symbolAliases":[{"foreign":{"id":77849,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69372,"src":"1497:25:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77852,"nodeType":"ImportDirective","src":"1600:86:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":69499,"symbolAliases":[{"foreign":{"id":77851,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69498,"src":"1608:13:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77854,"nodeType":"ImportDirective","src":"1687:84:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":69897,"symbolAliases":[{"foreign":{"id":77853,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"1695:12:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77856,"nodeType":"ImportDirective","src":"1772:70:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":70235,"symbolAliases":[{"foreign":{"id":77855,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"1780:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77858,"nodeType":"ImportDirective","src":"1843:130:159","nodes":[],"absolutePath":"dependencies/symbiotic-rewards-main/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":74570,"symbolAliases":[{"foreign":{"id":77857,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74569,"src":"1856:23:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77860,"nodeType":"ImportDirective","src":"1974:118:159","nodes":[],"absolutePath":"dependencies/symbiotic-rewards-main/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":80082,"sourceUnit":74764,"symbolAliases":[{"foreign":{"id":77859,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"1982:21:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80081,"nodeType":"ContractDefinition","src":"2376:21773:159","nodes":[{"id":77872,"nodeType":"UsingForDirective","src":"2480:55:159","nodes":[],"global":false,"libraryName":{"id":77869,"name":"EnumerableMap","nameLocations":["2486:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":16925,"src":"2486:13:159"},"typeName":{"id":77871,"nodeType":"UserDefinedTypeName","pathNode":{"id":77870,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2504:13:159","2518:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2504:30:159"},"referencedDeclaration":14966,"src":"2504:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77876,"nodeType":"UsingForDirective","src":"2540:57:159","nodes":[],"global":false,"libraryName":{"id":77873,"name":"MapWithTimeData","nameLocations":["2546:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":87588,"src":"2546:15:159"},"typeName":{"id":77875,"nodeType":"UserDefinedTypeName","pathNode":{"id":77874,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2566:13:159","2580:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2566:30:159"},"referencedDeclaration":14966,"src":"2566:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77880,"nodeType":"UsingForDirective","src":"2603:58:159","nodes":[],"global":false,"libraryName":{"id":77877,"name":"EnumerableMap","nameLocations":["2609:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":16925,"src":"2609:13:159"},"typeName":{"id":77879,"nodeType":"UserDefinedTypeName","pathNode":{"id":77878,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2627:13:159","2641:19:159"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"2627:33:159"},"referencedDeclaration":15261,"src":"2627:33:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$15261_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":77883,"nodeType":"UsingForDirective","src":"2667:29:159","nodes":[],"global":false,"libraryName":{"id":77881,"name":"Subnetwork","nameLocations":["2673:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":68356,"src":"2673:10:159"},"typeName":{"id":77882,"name":"address","nodeType":"ElementaryTypeName","src":"2688:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":77886,"nodeType":"VariableDeclaration","src":"2809:106:159","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2834:12:159","scope":80081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2809:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":77885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2849:66:159","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":77889,"nodeType":"VariableDeclaration","src":"2922:50:159","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2947:18:159","scope":80081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2922:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":77888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2968:4:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":77892,"nodeType":"VariableDeclaration","src":"2978:45:159","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3001:18:159","scope":80081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77890,"name":"uint8","nodeType":"ElementaryTypeName","src":"2978:5:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":77891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3022:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":77900,"nodeType":"FunctionDefinition","src":"3098:53:159","nodes":[],"body":{"id":77899,"nodeType":"Block","src":"3112:39:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77896,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"3122:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3122:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77898,"nodeType":"ExpressionStatement","src":"3122:22:159"}]},"documentation":{"id":77893,"nodeType":"StructuredDocumentation","src":"3030:63:159","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77894,"nodeType":"ParameterList","parameters":[],"src":"3109:2:159"},"returnParameters":{"id":77895,"nodeType":"ParameterList","parameters":[],"src":"3112:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78051,"nodeType":"FunctionDefinition","src":"3157:1234:159","nodes":[],"body":{"id":78050,"nodeType":"Block","src":"3225:1166:159","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":77909,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3250:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3258:5:159","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":76633,"src":"3250:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77908,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"3235:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3235:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77912,"nodeType":"ExpressionStatement","src":"3235:29:159"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":77914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3291:33:159","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":77913,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80050,"src":"3275:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3275:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77916,"nodeType":"ExpressionStatement","src":"3275:50:159"},{"assignments":[77919],"declarations":[{"constant":false,"id":77919,"mutability":"mutable","name":"$","nameLocation":"3351:1:159","nodeType":"VariableDeclaration","scope":78050,"src":"3335:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77918,"nodeType":"UserDefinedTypeName","pathNode":{"id":77917,"name":"Storage","nameLocations":["3335:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"3335:7:159"},"referencedDeclaration":76699,"src":"3335:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77922,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77920,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"3355:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3355:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3335:30:159"},{"expression":{"id":77928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77923,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3376:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3378:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"3376:13:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77926,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3392:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3400:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76635,"src":"3392:19:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3376:35:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77929,"nodeType":"ExpressionStatement","src":"3376:35:159"},{"expression":{"id":77935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77930,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3421:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3423:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"3421:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77933,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3447:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3455:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76637,"src":"3447:29:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3421:55:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77936,"nodeType":"ExpressionStatement","src":"3421:55:159"},{"expression":{"id":77942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77937,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3486:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3488:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"3486:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77940,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3510:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3518:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76639,"src":"3510:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3486:51:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77943,"nodeType":"ExpressionStatement","src":"3486:51:159"},{"expression":{"id":77949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77944,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3547:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3549:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"3547:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77947,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3568:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3576:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76641,"src":"3568:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3547:45:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77950,"nodeType":"ExpressionStatement","src":"3547:45:159"},{"expression":{"id":77956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77951,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3602:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3604:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"3602:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77954,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3622:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3630:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76643,"src":"3622:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3602:43:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77957,"nodeType":"ExpressionStatement","src":"3602:43:159"},{"expression":{"id":77963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77958,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3655:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3657:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"3655:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77961,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3682:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3690:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76645,"src":"3682:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3655:57:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77964,"nodeType":"ExpressionStatement","src":"3655:57:159"},{"expression":{"id":77970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77965,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3722:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3724:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"3722:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77968,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3752:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3760:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76651,"src":"3752:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3722:63:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77971,"nodeType":"ExpressionStatement","src":"3722:63:159"},{"expression":{"id":77977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77972,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3795:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3797:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"3795:25:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77975,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3823:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3831:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76647,"src":"3823:31:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3795:59:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":77978,"nodeType":"ExpressionStatement","src":"3795:59:159"},{"expression":{"id":77984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77979,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3864:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3866:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"3864:21:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77982,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3888:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3896:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76649,"src":"3888:27:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3864:51:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":77985,"nodeType":"ExpressionStatement","src":"3864:51:159"},{"expression":{"id":77991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77986,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3948:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3950:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"3948:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77989,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"3963:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3971:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76655,"src":"3963:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3948:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77992,"nodeType":"ExpressionStatement","src":"3948:33:159"},{"expression":{"id":78003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77993,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"3991:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3993:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"3991:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78001,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77892,"src":"4031:18:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":77998,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4014:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$80081","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$80081","typeString":"contract Middleware"}],"id":77997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4006:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77996,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:159","typeDescriptions":{}}},"id":77999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4006:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4020:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":68318,"src":"4006:24:159","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":78002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4006:44:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3991:59:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78004,"nodeType":"ExpressionStatement","src":"3991:59:159"},{"expression":{"id":78010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78005,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"4060:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4062:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"4060:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78008,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"4076:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4084:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76653,"src":"4076:19:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4060:35:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78011,"nodeType":"ExpressionStatement","src":"4060:35:159"},{"expression":{"id":78017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78012,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"4106:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4108:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"4106:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78015,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"4117:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4125:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76657,"src":"4117:14:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4106:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78018,"nodeType":"ExpressionStatement","src":"4106:25:159"},{"expression":{"id":78024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78019,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"4142:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4144:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"4142:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78022,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"4156:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4164:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76660,"src":"4156:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4142:31:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78025,"nodeType":"ExpressionStatement","src":"4142:31:159"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":78027,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"4201:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4209:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76660,"src":"4201:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":78029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4219:15:159","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":86404,"src":"4201:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78026,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68376,"src":"4184:16:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$68376_$","typeString":"type(contract INetworkRegistry)"}},"id":78030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4184:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$68376","typeString":"contract INetworkRegistry"}},"id":78031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4236:15:159","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":68375,"src":"4184:67:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":78032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4184:69:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78033,"nodeType":"ExpressionStatement","src":"4184:69:159"},{"expression":{"arguments":[{"arguments":[{"id":78042,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4348:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$80081","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$80081","typeString":"contract Middleware"}],"id":78041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4340:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78040,"name":"address","nodeType":"ElementaryTypeName","src":"4340:7:159","typeDescriptions":{}}},"id":78043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4340:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":78035,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77903,"src":"4289:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4297:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76660,"src":"4289:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":78037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4307:17:159","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":86406,"src":"4289:35:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78034,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69372,"src":"4263:25:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$69372_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":78038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:62:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$69372","typeString":"contract INetworkMiddlewareService"}},"id":78039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4326:13:159","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":69371,"src":"4263:76:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":78044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:91:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78045,"nodeType":"ExpressionStatement","src":"4263:91:159"},{"expression":{"arguments":[{"id":78047,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77919,"src":"4382:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":78046,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79630,"src":"4365:16:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76699_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":78048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4365:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78049,"nodeType":"ExpressionStatement","src":"4365:19:159"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":77906,"kind":"modifierInvocation","modifierName":{"id":77905,"name":"initializer","nameLocations":["3213:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"3213:11:159"},"nodeType":"ModifierInvocation","src":"3213:11:159"}],"name":"initialize","nameLocation":"3166:10:159","parameters":{"id":77904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77903,"mutability":"mutable","name":"_params","nameLocation":"3197:7:159","nodeType":"VariableDeclaration","scope":78051,"src":"3177:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":77902,"nodeType":"UserDefinedTypeName","pathNode":{"id":77901,"name":"InitParams","nameLocations":["3177:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":76661,"src":"3177:10:159"},"referencedDeclaration":76661,"src":"3177:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3176:29:159"},"returnParameters":{"id":77907,"nodeType":"ParameterList","parameters":[],"src":"3225:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78248,"nodeType":"FunctionDefinition","src":"4464:1578:159","nodes":[],"body":{"id":78247,"nodeType":"Block","src":"4522:1520:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78061,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"4547:5:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:7:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78060,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"4532:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78064,"nodeType":"ExpressionStatement","src":"4532:23:159"},{"assignments":[78067],"declarations":[{"constant":false,"id":78067,"mutability":"mutable","name":"oldStorage","nameLocation":"4582:10:159","nodeType":"VariableDeclaration","scope":78247,"src":"4566:26:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78066,"nodeType":"UserDefinedTypeName","pathNode":{"id":78065,"name":"Storage","nameLocations":["4566:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"4566:7:159"},"referencedDeclaration":76699,"src":"4566:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78070,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78068,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"4595:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4595:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4566:39:159"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":78072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4632:33:159","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":78071,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80050,"src":"4616:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4616:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78074,"nodeType":"ExpressionStatement","src":"4616:50:159"},{"assignments":[78077],"declarations":[{"constant":false,"id":78077,"mutability":"mutable","name":"newStorage","nameLocation":"4692:10:159","nodeType":"VariableDeclaration","scope":78247,"src":"4676:26:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78076,"nodeType":"UserDefinedTypeName","pathNode":{"id":78075,"name":"Storage","nameLocations":["4676:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"4676:7:159"},"referencedDeclaration":76699,"src":"4676:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78080,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78078,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"4705:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4705:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4676:39:159"},{"expression":{"id":78086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78081,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"4726:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4737:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"4726:22:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78084,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"4751:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4762:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"4751:22:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4726:47:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78087,"nodeType":"ExpressionStatement","src":"4726:47:159"},{"expression":{"id":78093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78088,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"4783:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4794:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"4783:32:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78091,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"4818:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4829:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"4818:32:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4783:67:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78094,"nodeType":"ExpressionStatement","src":"4783:67:159"},{"expression":{"id":78100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78095,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"4860:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4871:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"4860:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78098,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"4893:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4904:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"4893:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4860:63:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78101,"nodeType":"ExpressionStatement","src":"4860:63:159"},{"expression":{"id":78107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78102,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"4933:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4944:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"4933:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78105,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"4963:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4974:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"4963:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4933:57:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78108,"nodeType":"ExpressionStatement","src":"4933:57:159"},{"expression":{"id":78114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78109,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5000:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5011:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"5000:26:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78112,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5029:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5040:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"5029:26:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5000:55:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78115,"nodeType":"ExpressionStatement","src":"5000:55:159"},{"expression":{"id":78121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78116,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5065:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5076:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"5065:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78119,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5101:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5112:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"5101:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5065:69:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":78122,"nodeType":"ExpressionStatement","src":"5065:69:159"},{"expression":{"id":78128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78123,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5144:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5155:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"5144:36:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78126,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5183:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5194:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"5183:36:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5144:75:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78129,"nodeType":"ExpressionStatement","src":"5144:75:159"},{"expression":{"id":78135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78130,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5229:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5240:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"5229:34:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78133,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5266:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5277:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"5266:34:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5229:71:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":78136,"nodeType":"ExpressionStatement","src":"5229:71:159"},{"expression":{"id":78142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78137,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5310:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5321:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"5310:30:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78140,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5343:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5354:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"5343:30:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5310:63:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":78143,"nodeType":"ExpressionStatement","src":"5310:63:159"},{"expression":{"id":78149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78144,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5383:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5394:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"5383:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78147,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5407:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5418:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"5407:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5383:45:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78150,"nodeType":"ExpressionStatement","src":"5383:45:159"},{"expression":{"id":78156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78151,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5438:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5449:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"5438:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78154,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5462:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5473:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"5462:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5438:45:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78157,"nodeType":"ExpressionStatement","src":"5438:45:159"},{"expression":{"id":78163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78158,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5493:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5504:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"5493:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78161,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5518:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5529:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"5518:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5493:47:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78164,"nodeType":"ExpressionStatement","src":"5493:47:159"},{"expression":{"id":78170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78165,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5550:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5561:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"5550:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78168,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5570:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5581:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"5570:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5550:37:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78171,"nodeType":"ExpressionStatement","src":"5550:37:159"},{"expression":{"id":78177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78172,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5597:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5608:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"5597:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78175,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5620:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5631:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"5620:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5597:43:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78178,"nodeType":"ExpressionStatement","src":"5597:43:159"},{"body":{"id":78211,"nodeType":"Block","src":"5711:132:159","statements":[{"assignments":[78193,78195],"declarations":[{"constant":false,"id":78193,"mutability":"mutable","name":"key","nameLocation":"5734:3:159","nodeType":"VariableDeclaration","scope":78211,"src":"5726:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78192,"name":"address","nodeType":"ElementaryTypeName","src":"5726:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78195,"mutability":"mutable","name":"value","nameLocation":"5747:5:159","nodeType":"VariableDeclaration","scope":78211,"src":"5739:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78194,"name":"uint256","nodeType":"ElementaryTypeName","src":"5739:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78201,"initialValue":{"arguments":[{"id":78199,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78180,"src":"5780:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78196,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5756:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5767:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"5756:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5777:2:159","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":15121,"src":"5756:23:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":78200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5756:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5725:57:159"},{"expression":{"arguments":[{"id":78207,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78193,"src":"5821:3:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78208,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78195,"src":"5826:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78202,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5796:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5807:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"5796:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5817:3:159","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":14999,"src":"5796:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":78209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5796:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78210,"nodeType":"ExpressionStatement","src":"5796:36:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78183,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78180,"src":"5671:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":78184,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5675:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5686:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"5675:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5696:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"5675:27:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":78187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5675:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5671:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78212,"initializationExpression":{"assignments":[78180],"declarations":[{"constant":false,"id":78180,"mutability":"mutable","name":"i","nameLocation":"5664:1:159","nodeType":"VariableDeclaration","scope":78212,"src":"5656:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78179,"name":"uint256","nodeType":"ElementaryTypeName","src":"5656:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78182,"initialValue":{"hexValue":"30","id":78181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5668:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5656:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5706:3:159","subExpression":{"id":78189,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78180,"src":"5706:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78191,"nodeType":"ExpressionStatement","src":"5706:3:159"},"nodeType":"ForStatement","src":"5651:192:159"},{"body":{"id":78245,"nodeType":"Block","src":"5910:126:159","statements":[{"assignments":[78227,78229],"declarations":[{"constant":false,"id":78227,"mutability":"mutable","name":"key","nameLocation":"5933:3:159","nodeType":"VariableDeclaration","scope":78245,"src":"5925:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78226,"name":"address","nodeType":"ElementaryTypeName","src":"5925:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78229,"mutability":"mutable","name":"value","nameLocation":"5946:5:159","nodeType":"VariableDeclaration","scope":78245,"src":"5938:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78228,"name":"uint256","nodeType":"ElementaryTypeName","src":"5938:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78235,"initialValue":{"arguments":[{"id":78233,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78214,"src":"5976:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78230,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5955:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5966:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"5955:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5973:2:159","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":15121,"src":"5955:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":78234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5955:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5924:54:159"},{"expression":{"arguments":[{"id":78241,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78227,"src":"6014:3:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78242,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78229,"src":"6019:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78236,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78077,"src":"5992:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6003:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"5992:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6010:3:159","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":14999,"src":"5992:21:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":78243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5992:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78244,"nodeType":"ExpressionStatement","src":"5992:33:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78217,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78214,"src":"5873:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":78218,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"5877:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5888:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"5877:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5895:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"5877:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":78221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5877:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5873:30:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78246,"initializationExpression":{"assignments":[78214],"declarations":[{"constant":false,"id":78214,"mutability":"mutable","name":"i","nameLocation":"5866:1:159","nodeType":"VariableDeclaration","scope":78246,"src":"5858:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78213,"name":"uint256","nodeType":"ElementaryTypeName","src":"5858:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78216,"initialValue":{"hexValue":"30","id":78215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5870:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5858:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5905:3:159","subExpression":{"id":78223,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78214,"src":"5905:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78225,"nodeType":"ExpressionStatement","src":"5905:3:159"},"nodeType":"ForStatement","src":"5853:183:159"}]},"documentation":{"id":78052,"nodeType":"StructuredDocumentation","src":"4397:62:159","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":78055,"kind":"modifierInvocation","modifierName":{"id":78054,"name":"onlyOwner","nameLocations":["4495:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"4495:9:159"},"nodeType":"ModifierInvocation","src":"4495:9:159"},{"arguments":[{"hexValue":"32","id":78057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4519:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78058,"kind":"modifierInvocation","modifierName":{"id":78056,"name":"reinitializer","nameLocations":["4505:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"4505:13:159"},"nodeType":"ModifierInvocation","src":"4505:16:159"}],"name":"reinitialize","nameLocation":"4473:12:159","parameters":{"id":78053,"nodeType":"ParameterList","parameters":[],"src":"4485:2:159"},"returnParameters":{"id":78059,"nodeType":"ParameterList","parameters":[],"src":"4522:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78258,"nodeType":"FunctionDefinition","src":"6207:84:159","nodes":[],"body":{"id":78257,"nodeType":"Block","src":"6289:2:159","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":78249,"nodeType":"StructuredDocumentation","src":"6048:154:159","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":78255,"kind":"modifierInvocation","modifierName":{"id":78254,"name":"onlyOwner","nameLocations":["6279:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"6279:9:159"},"nodeType":"ModifierInvocation","src":"6279:9:159"}],"name":"_authorizeUpgrade","nameLocation":"6216:17:159","overrides":{"id":78253,"nodeType":"OverrideSpecifier","overrides":[],"src":"6270:8:159"},"parameters":{"id":78252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78251,"mutability":"mutable","name":"newImplementation","nameLocation":"6242:17:159","nodeType":"VariableDeclaration","scope":78258,"src":"6234:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78250,"name":"address","nodeType":"ElementaryTypeName","src":"6234:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6233:27:159"},"returnParameters":{"id":78256,"nodeType":"ParameterList","parameters":[],"src":"6289:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78268,"nodeType":"FunctionDefinition","src":"6316:98:159","nodes":[],"body":{"id":78267,"nodeType":"Block","src":"6368:46:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78263,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"6385:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6385:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6396:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"6385:22:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78262,"id":78266,"nodeType":"Return","src":"6378:29:159"}]},"baseFunctions":[76723],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6325:11:159","parameters":{"id":78259,"nodeType":"ParameterList","parameters":[],"src":"6336:2:159"},"returnParameters":{"id":78262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78268,"src":"6360:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78260,"name":"uint48","nodeType":"ElementaryTypeName","src":"6360:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6359:8:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78278,"nodeType":"FunctionDefinition","src":"6420:118:159","nodes":[],"body":{"id":78277,"nodeType":"Block","src":"6482:56:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78273,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"6499:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6499:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6510:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"6499:32:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78272,"id":78276,"nodeType":"Return","src":"6492:39:159"}]},"baseFunctions":[76728],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6429:21:159","parameters":{"id":78269,"nodeType":"ParameterList","parameters":[],"src":"6450:2:159"},"returnParameters":{"id":78272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78278,"src":"6474:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78270,"name":"uint48","nodeType":"ElementaryTypeName","src":"6474:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6473:8:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78288,"nodeType":"FunctionDefinition","src":"6544:116:159","nodes":[],"body":{"id":78287,"nodeType":"Block","src":"6606:54:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78283,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"6623:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6623:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6634:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"6623:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78282,"id":78286,"nodeType":"Return","src":"6616:37:159"}]},"baseFunctions":[76733],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6553:19:159","parameters":{"id":78279,"nodeType":"ParameterList","parameters":[],"src":"6572:2:159"},"returnParameters":{"id":78282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78288,"src":"6598:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78280,"name":"uint48","nodeType":"ElementaryTypeName","src":"6598:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6597:8:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78298,"nodeType":"FunctionDefinition","src":"6666:110:159","nodes":[],"body":{"id":78297,"nodeType":"Block","src":"6725:51:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78293,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"6742:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6742:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6753:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"6742:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78292,"id":78296,"nodeType":"Return","src":"6735:34:159"}]},"baseFunctions":[76738],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6675:16:159","parameters":{"id":78289,"nodeType":"ParameterList","parameters":[],"src":"6691:2:159"},"returnParameters":{"id":78292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78298,"src":"6717:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78290,"name":"uint48","nodeType":"ElementaryTypeName","src":"6717:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6716:8:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78308,"nodeType":"FunctionDefinition","src":"6782:108:159","nodes":[],"body":{"id":78307,"nodeType":"Block","src":"6840:50:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78303,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"6857:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6857:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6868:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"6857:26:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78302,"id":78306,"nodeType":"Return","src":"6850:33:159"}]},"baseFunctions":[76743],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6791:15:159","parameters":{"id":78299,"nodeType":"ParameterList","parameters":[],"src":"6806:2:159"},"returnParameters":{"id":78302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78308,"src":"6832:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78300,"name":"uint48","nodeType":"ElementaryTypeName","src":"6832:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6831:8:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78318,"nodeType":"FunctionDefinition","src":"6896:122:159","nodes":[],"body":{"id":78317,"nodeType":"Block","src":"6961:57:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78313,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"6978:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6978:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6989:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"6978:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78312,"id":78316,"nodeType":"Return","src":"6971:40:159"}]},"baseFunctions":[76748],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6905:22:159","parameters":{"id":78309,"nodeType":"ParameterList","parameters":[],"src":"6927:2:159"},"returnParameters":{"id":78312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78318,"src":"6953:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78310,"name":"uint48","nodeType":"ElementaryTypeName","src":"6953:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6952:8:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78328,"nodeType":"FunctionDefinition","src":"7024:129:159","nodes":[],"body":{"id":78327,"nodeType":"Block","src":"7093:60:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78323,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"7110:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7110:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7121:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"7110:36:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78322,"id":78326,"nodeType":"Return","src":"7103:43:159"}]},"baseFunctions":[76753],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7033:25:159","parameters":{"id":78319,"nodeType":"ParameterList","parameters":[],"src":"7058:2:159"},"returnParameters":{"id":78322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78321,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78328,"src":"7084:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78320,"name":"uint256","nodeType":"ElementaryTypeName","src":"7084:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7083:9:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78338,"nodeType":"FunctionDefinition","src":"7159:124:159","nodes":[],"body":{"id":78337,"nodeType":"Block","src":"7225:58:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78333,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"7242:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7242:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7253:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"7242:34:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":78332,"id":78336,"nodeType":"Return","src":"7235:41:159"}]},"baseFunctions":[76758],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7168:23:159","parameters":{"id":78329,"nodeType":"ParameterList","parameters":[],"src":"7191:2:159"},"returnParameters":{"id":78332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78338,"src":"7217:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":78330,"name":"uint64","nodeType":"ElementaryTypeName","src":"7217:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7216:8:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78348,"nodeType":"FunctionDefinition","src":"7289:116:159","nodes":[],"body":{"id":78347,"nodeType":"Block","src":"7351:54:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78343,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"7368:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7368:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7379:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"7368:30:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":78342,"id":78346,"nodeType":"Return","src":"7361:37:159"}]},"baseFunctions":[76763],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7298:19:159","parameters":{"id":78339,"nodeType":"ParameterList","parameters":[],"src":"7317:2:159"},"returnParameters":{"id":78342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78348,"src":"7343:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":78340,"name":"uint64","nodeType":"ElementaryTypeName","src":"7343:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7342:8:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78358,"nodeType":"FunctionDefinition","src":"7411:99:159","nodes":[],"body":{"id":78357,"nodeType":"Block","src":"7465:45:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78353,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"7482:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7482:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7493:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"7482:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78352,"id":78356,"nodeType":"Return","src":"7475:28:159"}]},"baseFunctions":[76768],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7420:10:159","parameters":{"id":78349,"nodeType":"ParameterList","parameters":[],"src":"7430:2:159"},"returnParameters":{"id":78352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78358,"src":"7456:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78350,"name":"address","nodeType":"ElementaryTypeName","src":"7456:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7455:9:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78368,"nodeType":"FunctionDefinition","src":"7516:99:159","nodes":[],"body":{"id":78367,"nodeType":"Block","src":"7570:45:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78363,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"7587:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7587:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7598:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"7587:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78362,"id":78366,"nodeType":"Return","src":"7580:28:159"}]},"baseFunctions":[76773],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7525:10:159","parameters":{"id":78359,"nodeType":"ParameterList","parameters":[],"src":"7535:2:159"},"returnParameters":{"id":78362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78368,"src":"7561:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7561:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7560:9:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78378,"nodeType":"FunctionDefinition","src":"7621:101:159","nodes":[],"body":{"id":78377,"nodeType":"Block","src":"7676:46:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78373,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"7693:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7693:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7704:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"7693:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78372,"id":78376,"nodeType":"Return","src":"7686:29:159"}]},"baseFunctions":[76778],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7630:11:159","parameters":{"id":78369,"nodeType":"ParameterList","parameters":[],"src":"7641:2:159"},"returnParameters":{"id":78372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78378,"src":"7667:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78370,"name":"uint256","nodeType":"ElementaryTypeName","src":"7667:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7666:9:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78388,"nodeType":"FunctionDefinition","src":"7728:91:159","nodes":[],"body":{"id":78387,"nodeType":"Block","src":"7778:41:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78383,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"7795:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7795:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7806:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"7795:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78382,"id":78386,"nodeType":"Return","src":"7788:24:159"}]},"baseFunctions":[76783],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7737:6:159","parameters":{"id":78379,"nodeType":"ParameterList","parameters":[],"src":"7743:2:159"},"returnParameters":{"id":78382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78388,"src":"7769:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78380,"name":"address","nodeType":"ElementaryTypeName","src":"7769:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7768:9:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78399,"nodeType":"FunctionDefinition","src":"7825:129:159","nodes":[],"body":{"id":78398,"nodeType":"Block","src":"7910:44:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78394,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"7927:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7927:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7938:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"7927:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":78393,"id":78397,"nodeType":"Return","src":"7920:27:159"}]},"baseFunctions":[76789],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7834:18:159","parameters":{"id":78389,"nodeType":"ParameterList","parameters":[],"src":"7852:2:159"},"returnParameters":{"id":78393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78399,"src":"7878:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":78391,"nodeType":"UserDefinedTypeName","pathNode":{"id":78390,"name":"Gear.SymbioticContracts","nameLocations":["7878:4:159","7883:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":86419,"src":"7878:23:159"},"referencedDeclaration":86419,"src":"7878:23:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7877:32:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78430,"nodeType":"FunctionDefinition","src":"7979:263:159","nodes":[],"body":{"id":78429,"nodeType":"Block","src":"8035:207:159","nodes":[],"statements":[{"assignments":[78406],"declarations":[{"constant":false,"id":78406,"mutability":"mutable","name":"$","nameLocation":"8061:1:159","nodeType":"VariableDeclaration","scope":78429,"src":"8045:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78405,"nodeType":"UserDefinedTypeName","pathNode":{"id":78404,"name":"Storage","nameLocations":["8045:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"8045:7:159"},"referencedDeclaration":76699,"src":"8045:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78409,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78407,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"8065:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8065:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8045:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78410,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8089:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8093:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8089:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":78412,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78406,"src":"8103:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8105:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8103:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8115:18:159","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":86414,"src":"8103:30:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8089:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78420,"nodeType":"IfStatement","src":"8085:101:159","trueBody":{"id":78419,"nodeType":"Block","src":"8135:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78416,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76595,"src":"8156:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8156:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78418,"nodeType":"RevertStatement","src":"8149:26:159"}]}},{"expression":{"id":78427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78421,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78406,"src":"8195:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8197:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8195:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8207:18:159","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":86414,"src":"8195:30:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78426,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78401,"src":"8228:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8195:40:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78428,"nodeType":"ExpressionStatement","src":"8195:40:159"}]},"baseFunctions":[76794],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"7988:20:159","parameters":{"id":78402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78401,"mutability":"mutable","name":"newRole","nameLocation":"8017:7:159","nodeType":"VariableDeclaration","scope":78430,"src":"8009:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78400,"name":"address","nodeType":"ElementaryTypeName","src":"8009:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8008:17:159"},"returnParameters":{"id":78403,"nodeType":"ParameterList","parameters":[],"src":"8035:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78461,"nodeType":"FunctionDefinition","src":"8248:259:159","nodes":[],"body":{"id":78460,"nodeType":"Block","src":"8303:204:159","nodes":[],"statements":[{"assignments":[78437],"declarations":[{"constant":false,"id":78437,"mutability":"mutable","name":"$","nameLocation":"8329:1:159","nodeType":"VariableDeclaration","scope":78460,"src":"8313:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78436,"nodeType":"UserDefinedTypeName","pathNode":{"id":78435,"name":"Storage","nameLocations":["8313:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"8313:7:159"},"referencedDeclaration":76699,"src":"8313:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78440,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78438,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"8333:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8333:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8313:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78441,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8357:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8361:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8357:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":78443,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78437,"src":"8371:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8373:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8371:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8383:17:159","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":86416,"src":"8371:29:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8357:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78451,"nodeType":"IfStatement","src":"8353:99:159","trueBody":{"id":78450,"nodeType":"Block","src":"8402:50:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78447,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76598,"src":"8423:16:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8423:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78449,"nodeType":"RevertStatement","src":"8416:25:159"}]}},{"expression":{"id":78458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78452,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78437,"src":"8461:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8463:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8461:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8473:17:159","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":86416,"src":"8461:29:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78457,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78432,"src":"8493:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8461:39:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78459,"nodeType":"ExpressionStatement","src":"8461:39:159"}]},"baseFunctions":[76799],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8257:19:159","parameters":{"id":78433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78432,"mutability":"mutable","name":"newRole","nameLocation":"8285:7:159","nodeType":"VariableDeclaration","scope":78461,"src":"8277:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78431,"name":"address","nodeType":"ElementaryTypeName","src":"8277:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8276:17:159"},"returnParameters":{"id":78434,"nodeType":"ParameterList","parameters":[],"src":"8303:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78515,"nodeType":"FunctionDefinition","src":"8563:405:159","nodes":[],"body":{"id":78514,"nodeType":"Block","src":"8600:368:159","nodes":[],"statements":[{"assignments":[78466],"declarations":[{"constant":false,"id":78466,"mutability":"mutable","name":"$","nameLocation":"8626:1:159","nodeType":"VariableDeclaration","scope":78514,"src":"8610:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78465,"nodeType":"UserDefinedTypeName","pathNode":{"id":78464,"name":"Storage","nameLocations":["8610:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"8610:7:159"},"referencedDeclaration":76699,"src":"8610:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78469,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78467,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"8630:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8630:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8610:30:159"},{"condition":{"id":78479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8655:61:159","subExpression":{"arguments":[{"expression":{"id":78476,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8705:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8709:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8705:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":78471,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78466,"src":"8666:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8668:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8666:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8678:16:159","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":86402,"src":"8666:28:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78470,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68710,"src":"8656:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$68710_$","typeString":"type(contract IRegistry)"}},"id":78474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8656:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$68710","typeString":"contract IRegistry"}},"id":78475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8696:8:159","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":68695,"src":"8656:48:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":78478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8656:60:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78484,"nodeType":"IfStatement","src":"8651:121:159","trueBody":{"id":78483,"nodeType":"Block","src":"8718:54:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78480,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76544,"src":"8739:20:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8739:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78482,"nodeType":"RevertStatement","src":"8732:29:159"}]}},{"condition":{"id":78498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8785:77:159","subExpression":{"arguments":[{"expression":{"id":78491,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8836:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8840:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8836:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":78495,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8856:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$80081","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$80081","typeString":"contract Middleware"}],"id":78494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8848:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78493,"name":"address","nodeType":"ElementaryTypeName","src":"8848:7:159","typeDescriptions":{}}},"id":78496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8848:13:159","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":78486,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78466,"src":"8800:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8802:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"8800:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8812:12:159","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":86408,"src":"8800:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78485,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69498,"src":"8786:13:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$69498_$","typeString":"type(contract IOptInService)"}},"id":78489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8786:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$69498","typeString":"contract IOptInService"}},"id":78490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8826:9:159","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":69445,"src":"8786:49:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":78497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8786:76:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78503,"nodeType":"IfStatement","src":"8781:137:159","trueBody":{"id":78502,"nodeType":"Block","src":"8864:54:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78499,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76547,"src":"8885:20:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8885:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78501,"nodeType":"RevertStatement","src":"8878:29:159"}]}},{"expression":{"arguments":[{"expression":{"id":78509,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8947:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8951:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8947:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":78511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8959:1:159","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":78504,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78466,"src":"8928:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8930:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"8928:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8940:6:159","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":87413,"src":"8928:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":78512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8928:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78513,"nodeType":"ExpressionStatement","src":"8928:33:159"}]},"baseFunctions":[76838],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8572:16:159","parameters":{"id":78462,"nodeType":"ParameterList","parameters":[],"src":"8588:2:159"},"returnParameters":{"id":78463,"nodeType":"ParameterList","parameters":[],"src":"8600:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78527,"nodeType":"FunctionDefinition","src":"8974:93:159","nodes":[],"body":{"id":78526,"nodeType":"Block","src":"9010:57:159","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78522,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9049:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9053:6:159","memberName":"sender","nodeType":"MemberAccess","src":"9049:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78518,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"9020:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9031:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"9020:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9041:7:159","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":87507,"src":"9020:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":78524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78525,"nodeType":"ExpressionStatement","src":"9020:40:159"}]},"baseFunctions":[76842],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"8983:15:159","parameters":{"id":78516,"nodeType":"ParameterList","parameters":[],"src":"8998:2:159"},"returnParameters":{"id":78517,"nodeType":"ParameterList","parameters":[],"src":"9010:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78539,"nodeType":"FunctionDefinition","src":"9073:91:159","nodes":[],"body":{"id":78538,"nodeType":"Block","src":"9108:56:159","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9146:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9150:6:159","memberName":"sender","nodeType":"MemberAccess","src":"9146:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78530,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"9118:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9118:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9129:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"9118:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9139:6:159","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":87460,"src":"9118:27:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":78536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9118:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78537,"nodeType":"ExpressionStatement","src":"9118:39:159"}]},"baseFunctions":[76846],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9082:14:159","parameters":{"id":78528,"nodeType":"ParameterList","parameters":[],"src":"9096:2:159"},"returnParameters":{"id":78529,"nodeType":"ParameterList","parameters":[],"src":"9108:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78584,"nodeType":"FunctionDefinition","src":"9170:362:159","nodes":[],"body":{"id":78583,"nodeType":"Block","src":"9225:307:159","nodes":[],"statements":[{"assignments":[78546],"declarations":[{"constant":false,"id":78546,"mutability":"mutable","name":"$","nameLocation":"9251:1:159","nodeType":"VariableDeclaration","scope":78583,"src":"9235:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78545,"nodeType":"UserDefinedTypeName","pathNode":{"id":78544,"name":"Storage","nameLocations":["9235:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"9235:7:159"},"referencedDeclaration":76699,"src":"9235:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78547,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"9255:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9255:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9235:30:159"},{"assignments":[null,78551],"declarations":[null,{"constant":false,"id":78551,"mutability":"mutable","name":"disabledTime","nameLocation":"9286:12:159","nodeType":"VariableDeclaration","scope":78583,"src":"9279:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78550,"name":"uint48","nodeType":"ElementaryTypeName","src":"9279:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78557,"initialValue":{"arguments":[{"id":78555,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78541,"src":"9323:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78552,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78546,"src":"9302:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9304:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"9302:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9314:8:159","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":87566,"src":"9302:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":78556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9302:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9276:56:159"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78558,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78551,"src":"9347:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9363:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9347:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78561,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"9368:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":78562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9373:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"9368:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":78563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9368:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78564,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78551,"src":"9387:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":78565,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78546,"src":"9402:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9404:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"9402:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9387:36:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9368:55:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9347:76:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78574,"nodeType":"IfStatement","src":"9343:144:159","trueBody":{"id":78573,"nodeType":"Block","src":"9425:62:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78570,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76532,"src":"9446:28:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9446:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78572,"nodeType":"RevertStatement","src":"9439:37:159"}]}},{"expression":{"arguments":[{"id":78580,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78541,"src":"9516:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78575,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78546,"src":"9497:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9499:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"9497:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9509:6:159","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":15026,"src":"9497:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":78581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9497:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78582,"nodeType":"ExpressionStatement","src":"9497:28:159"}]},"baseFunctions":[76852],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9179:18:159","parameters":{"id":78542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78541,"mutability":"mutable","name":"operator","nameLocation":"9206:8:159","nodeType":"VariableDeclaration","scope":78584,"src":"9198:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78540,"name":"address","nodeType":"ElementaryTypeName","src":"9198:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9197:18:159"},"returnParameters":{"id":78543,"nodeType":"ParameterList","parameters":[],"src":"9225:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78642,"nodeType":"FunctionDefinition","src":"9538:494:159","nodes":[],"body":{"id":78641,"nodeType":"Block","src":"9645:387:159","nodes":[],"statements":[{"assignments":[78597],"declarations":[{"constant":false,"id":78597,"mutability":"mutable","name":"$","nameLocation":"9671:1:159","nodeType":"VariableDeclaration","scope":78641,"src":"9655:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78596,"nodeType":"UserDefinedTypeName","pathNode":{"id":78595,"name":"Storage","nameLocations":["9655:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"9655:7:159"},"referencedDeclaration":76699,"src":"9655:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78600,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78598,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"9675:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9675:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9655:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78601,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9700:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9704:6:159","memberName":"sender","nodeType":"MemberAccess","src":"9700:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78603,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78597,"src":"9714:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9716:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"9714:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9700:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78610,"nodeType":"IfStatement","src":"9696:71:159","trueBody":{"id":78609,"nodeType":"Block","src":"9724:43:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78606,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76592,"src":"9745:9:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9745:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78608,"nodeType":"RevertStatement","src":"9738:18:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78611,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78586,"src":"9781:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78612,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78597,"src":"9790:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9792:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"9790:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9781:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78619,"nodeType":"IfStatement","src":"9777:78:159","trueBody":{"id":78618,"nodeType":"Block","src":"9804:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78615,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"9825:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9825:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78617,"nodeType":"RevertStatement","src":"9818:26:159"}]}},{"expression":{"arguments":[{"expression":{"id":78626,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78597,"src":"9936:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9938:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"9936:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78628,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78586,"src":"9946:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78629,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78588,"src":"9953:6:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78630,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78590,"src":"9961:4:159","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":78621,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78597,"src":"9889:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9891:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"9889:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9901:15:159","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":86412,"src":"9889:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78620,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74569,"src":"9865:23:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$74569_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":78624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9865:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$74569","typeString":"contract IDefaultOperatorRewards"}},"id":78625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9918:17:159","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":74551,"src":"9865:70:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":78631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9865:101:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78632,"nodeType":"ExpressionStatement","src":"9865:101:159"},{"expression":{"arguments":[{"arguments":[{"id":78636,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78588,"src":"10011:6:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78637,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78590,"src":"10019:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78634,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9994:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9998:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"9994:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9994:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":78633,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9984:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":78639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9984:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78594,"id":78640,"nodeType":"Return","src":"9977:48:159"}]},"baseFunctions":[76890],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9547:25:159","parameters":{"id":78591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78586,"mutability":"mutable","name":"token","nameLocation":"9581:5:159","nodeType":"VariableDeclaration","scope":78642,"src":"9573:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78585,"name":"address","nodeType":"ElementaryTypeName","src":"9573:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78588,"mutability":"mutable","name":"amount","nameLocation":"9596:6:159","nodeType":"VariableDeclaration","scope":78642,"src":"9588:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78587,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78590,"mutability":"mutable","name":"root","nameLocation":"9612:4:159","nodeType":"VariableDeclaration","scope":78642,"src":"9604:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9604:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9572:45:159"},"returnParameters":{"id":78594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78642,"src":"9636:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9636:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9635:9:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78790,"nodeType":"FunctionDefinition","src":"10038:1224:159","nodes":[],"body":{"id":78789,"nodeType":"Block","src":"10185:1077:159","nodes":[],"statements":[{"assignments":[78654],"declarations":[{"constant":false,"id":78654,"mutability":"mutable","name":"$","nameLocation":"10211:1:159","nodeType":"VariableDeclaration","scope":78789,"src":"10195:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78653,"nodeType":"UserDefinedTypeName","pathNode":{"id":78652,"name":"Storage","nameLocations":["10195:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"10195:7:159"},"referencedDeclaration":76699,"src":"10195:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78657,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78655,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"10215:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10215:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10195:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78658,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10240:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10244:6:159","memberName":"sender","nodeType":"MemberAccess","src":"10240:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78660,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78654,"src":"10254:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10256:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"10254:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10240:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78667,"nodeType":"IfStatement","src":"10236:71:159","trueBody":{"id":78666,"nodeType":"Block","src":"10264:43:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78663,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76592,"src":"10285:9:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10285:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78665,"nodeType":"RevertStatement","src":"10278:18:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78668,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"10321:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10333:5:159","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":86224,"src":"10321:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78670,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78654,"src":"10342:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10344:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"10342:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10321:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78677,"nodeType":"IfStatement","src":"10317:90:159","trueBody":{"id":78676,"nodeType":"Block","src":"10356:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78673,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"10377:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10377:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78675,"nodeType":"RevertStatement","src":"10370:26:159"}]}},{"assignments":[78679],"declarations":[{"constant":false,"id":78679,"mutability":"mutable","name":"distributionBytes","nameLocation":"10430:17:159","nodeType":"VariableDeclaration","scope":78789,"src":"10417:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78678,"name":"bytes","nodeType":"ElementaryTypeName","src":"10417:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78680,"nodeType":"VariableDeclarationStatement","src":"10417:30:159"},{"body":{"id":78772,"nodeType":"Block","src":"10519:615:159","statements":[{"assignments":[78697],"declarations":[{"constant":false,"id":78697,"mutability":"mutable","name":"rewards","nameLocation":"10559:7:159","nodeType":"VariableDeclaration","scope":78772,"src":"10533:33:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86231_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":78696,"nodeType":"UserDefinedTypeName","pathNode":{"id":78695,"name":"Gear.StakerRewards","nameLocations":["10533:4:159","10538:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":86231,"src":"10533:18:159"},"referencedDeclaration":86231,"src":"10533:18:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86231_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":78702,"initialValue":{"baseExpression":{"expression":{"id":78698,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"10569:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10581:12:159","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":86220,"src":"10569:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$86231_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":78701,"indexExpression":{"id":78700,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78682,"src":"10594:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10569:27:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86231_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10533:63:159"},{"condition":{"id":78709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10615:33:159","subExpression":{"arguments":[{"expression":{"id":78706,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78697,"src":"10634:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86231_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10642:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":86228,"src":"10634:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78703,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78654,"src":"10616:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10618:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"10616:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10625:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"10616:17:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":78708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10616:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78714,"nodeType":"IfStatement","src":"10611:99:159","trueBody":{"id":78713,"nodeType":"Block","src":"10650:60:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78710,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76580,"src":"10675:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10675:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78712,"nodeType":"RevertStatement","src":"10668:27:159"}]}},{"assignments":[78716],"declarations":[{"constant":false,"id":78716,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10732:14:159","nodeType":"VariableDeclaration","scope":78772,"src":"10724:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78715,"name":"address","nodeType":"ElementaryTypeName","src":"10724:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78726,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":78722,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78697,"src":"10780:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86231_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10788:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":86228,"src":"10780:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78719,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78654,"src":"10757:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10759:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"10757:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10766:13:159","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":87587,"src":"10757:22:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":78724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10757:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":78718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10749:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78717,"name":"address","nodeType":"ElementaryTypeName","src":"10749:7:159","typeDescriptions":{}}},"id":78725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10749:46:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10724:71:159"},{"assignments":[78728],"declarations":[{"constant":false,"id":78728,"mutability":"mutable","name":"data","nameLocation":"10823:4:159","nodeType":"VariableDeclaration","scope":78772,"src":"10810:17:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78727,"name":"bytes","nodeType":"ElementaryTypeName","src":"10810:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78743,"initialValue":{"arguments":[{"id":78731,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78647,"src":"10841:9:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":78732,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78654,"src":"10852:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10854:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":76684,"src":"10852:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":78736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10873:2:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":78735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10867:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":78734,"name":"bytes","nodeType":"ElementaryTypeName","src":"10867:5:159","typeDescriptions":{}}},"id":78737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10867:9:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":78740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10884:2:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":78739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10878:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":78738,"name":"bytes","nodeType":"ElementaryTypeName","src":"10878:5:159","typeDescriptions":{}}},"id":78741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10878:9:159","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":78729,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10830:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10834:6:159","memberName":"encode","nodeType":"MemberAccess","src":"10830:10:159","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10830:58:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10810:78:159"},{"expression":{"arguments":[{"expression":{"id":78748,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78654,"src":"10958:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10960:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"10958:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78750,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"10968:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10980:5:159","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":86224,"src":"10968:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78752,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78697,"src":"10987:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86231_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10995:6:159","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":86230,"src":"10987:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78754,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78728,"src":"11003:4:159","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":78745,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78716,"src":"10924:14:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78744,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"10902:21:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$74763_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":78746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10902:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$74763","typeString":"contract IDefaultStakerRewards"}},"id":78747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10940:17:159","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":74839,"src":"10902:55:159","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":78755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10902:106:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78756,"nodeType":"ExpressionStatement","src":"10902:106:159"},{"expression":{"id":78770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78757,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78679,"src":"11023:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78761,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78679,"src":"11056:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":78764,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78697,"src":"11092:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86231_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":86228,"src":"11092:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78766,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78697,"src":"11107:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$86231_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":78767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11115:6:159","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":86230,"src":"11107:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78762,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11075:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11079:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11075:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11075:47:159","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":78759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11043:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":78758,"name":"bytes","nodeType":"ElementaryTypeName","src":"11043:5:159","typeDescriptions":{}}},"id":78760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11049:6:159","memberName":"concat","nodeType":"MemberAccess","src":"11043:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11043:80:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11023:100:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78771,"nodeType":"ExpressionStatement","src":"11023:100:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78682,"src":"10477:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":78686,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"10481:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10493:12:159","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":86220,"src":"10481:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$86231_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":78688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10506:6:159","memberName":"length","nodeType":"MemberAccess","src":"10481:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10477:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78773,"initializationExpression":{"assignments":[78682],"declarations":[{"constant":false,"id":78682,"mutability":"mutable","name":"i","nameLocation":"10470:1:159","nodeType":"VariableDeclaration","scope":78773,"src":"10462:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78681,"name":"uint256","nodeType":"ElementaryTypeName","src":"10462:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78684,"initialValue":{"hexValue":"30","id":78683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10474:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10462:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10514:3:159","subExpression":{"id":78690,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78682,"src":"10516:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78692,"nodeType":"ExpressionStatement","src":"10514:3:159"},"nodeType":"ForStatement","src":"10457:677:159"},{"expression":{"arguments":[{"arguments":[{"id":78778,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78679,"src":"11174:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":78781,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"11210:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11222:11:159","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":86222,"src":"11210:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":78783,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"11235:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":78784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11247:5:159","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":86224,"src":"11235:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":78779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11193:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11197:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11193:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11193:60:159","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":78776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11161:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":78775,"name":"bytes","nodeType":"ElementaryTypeName","src":"11161:5:159","typeDescriptions":{}}},"id":78777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11167:6:159","memberName":"concat","nodeType":"MemberAccess","src":"11161:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11161:93:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":78774,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11151:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":78787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11151:104:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78651,"id":78788,"nodeType":"Return","src":"11144:111:159"}]},"baseFunctions":[76901],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10047:23:159","parameters":{"id":78648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78645,"mutability":"mutable","name":"_commitment","nameLocation":"10107:11:159","nodeType":"VariableDeclaration","scope":78790,"src":"10071:47:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":78644,"nodeType":"UserDefinedTypeName","pathNode":{"id":78643,"name":"Gear.StakerRewardsCommitment","nameLocations":["10071:4:159","10076:23:159"],"nodeType":"IdentifierPath","referencedDeclaration":86225,"src":"10071:28:159"},"referencedDeclaration":86225,"src":"10071:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":78647,"mutability":"mutable","name":"timestamp","nameLocation":"10127:9:159","nodeType":"VariableDeclaration","scope":78790,"src":"10120:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78646,"name":"uint48","nodeType":"ElementaryTypeName","src":"10120:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10070:67:159"},"returnParameters":{"id":78651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78790,"src":"10172:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10172:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10171:9:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78821,"nodeType":"FunctionDefinition","src":"11268:236:159","nodes":[],"body":{"id":78820,"nodeType":"Block","src":"11353:151:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":78801,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78792,"src":"11378:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78800,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"11363:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11363:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78803,"nodeType":"ExpressionStatement","src":"11363:22:159"},{"expression":{"arguments":[{"id":78805,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78792,"src":"11418:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78806,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"11426:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":78804,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79944,"src":"11395:22:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":78807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11395:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78808,"nodeType":"ExpressionStatement","src":"11395:40:159"},{"expression":{"arguments":[{"id":78813,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78792,"src":"11471:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":78816,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"11487:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11479:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":78814,"name":"uint160","nodeType":"ElementaryTypeName","src":"11479:7:159","typeDescriptions":{}}},"id":78817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11479:17:159","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":78809,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"11446:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11446:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11457:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"11446:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11464:6:159","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":87413,"src":"11446:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":78818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11446:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78819,"nodeType":"ExpressionStatement","src":"11446:51:159"}]},"baseFunctions":[76860],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78797,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78792,"src":"11345:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78798,"kind":"modifierInvocation","modifierName":{"id":78796,"name":"vaultOwner","nameLocations":["11334:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":80060,"src":"11334:10:159"},"nodeType":"ModifierInvocation","src":"11334:18:159"}],"name":"registerVault","nameLocation":"11277:13:159","parameters":{"id":78795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78792,"mutability":"mutable","name":"_vault","nameLocation":"11299:6:159","nodeType":"VariableDeclaration","scope":78821,"src":"11291:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78791,"name":"address","nodeType":"ElementaryTypeName","src":"11291:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78794,"mutability":"mutable","name":"_rewards","nameLocation":"11315:8:159","nodeType":"VariableDeclaration","scope":78821,"src":"11307:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78793,"name":"address","nodeType":"ElementaryTypeName","src":"11307:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11290:34:159"},"returnParameters":{"id":78799,"nodeType":"ParameterList","parameters":[],"src":"11353:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78837,"nodeType":"FunctionDefinition","src":"11510:113:159","nodes":[],"body":{"id":78836,"nodeType":"Block","src":"11574:49:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":78833,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78823,"src":"11610:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78829,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"11584:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11595:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"11584:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11602:7:159","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":87507,"src":"11584:25:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":78834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78835,"nodeType":"ExpressionStatement","src":"11584:32:159"}]},"baseFunctions":[76872],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78826,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78823,"src":"11567:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78827,"kind":"modifierInvocation","modifierName":{"id":78825,"name":"vaultOwner","nameLocations":["11556:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":80060,"src":"11556:10:159"},"nodeType":"ModifierInvocation","src":"11556:17:159"}],"name":"disableVault","nameLocation":"11519:12:159","parameters":{"id":78824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78823,"mutability":"mutable","name":"vault","nameLocation":"11540:5:159","nodeType":"VariableDeclaration","scope":78837,"src":"11532:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78822,"name":"address","nodeType":"ElementaryTypeName","src":"11532:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11531:15:159"},"returnParameters":{"id":78828,"nodeType":"ParameterList","parameters":[],"src":"11574:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78853,"nodeType":"FunctionDefinition","src":"11629:111:159","nodes":[],"body":{"id":78852,"nodeType":"Block","src":"11692:48:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":78849,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78839,"src":"11727:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78845,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"11702:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11702:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11713:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"11702:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11720:6:159","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":87460,"src":"11702:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":78850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11702:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78851,"nodeType":"ExpressionStatement","src":"11702:31:159"}]},"baseFunctions":[76878],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78842,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78839,"src":"11685:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78843,"kind":"modifierInvocation","modifierName":{"id":78841,"name":"vaultOwner","nameLocations":["11674:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":80060,"src":"11674:10:159"},"nodeType":"ModifierInvocation","src":"11674:17:159"}],"name":"enableVault","nameLocation":"11638:11:159","parameters":{"id":78840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78839,"mutability":"mutable","name":"vault","nameLocation":"11658:5:159","nodeType":"VariableDeclaration","scope":78853,"src":"11650:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78838,"name":"address","nodeType":"ElementaryTypeName","src":"11650:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11649:15:159"},"returnParameters":{"id":78844,"nodeType":"ParameterList","parameters":[],"src":"11692:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78901,"nodeType":"FunctionDefinition","src":"11746:355:159","nodes":[],"body":{"id":78900,"nodeType":"Block","src":"11813:288:159","nodes":[],"statements":[{"assignments":[78863],"declarations":[{"constant":false,"id":78863,"mutability":"mutable","name":"$","nameLocation":"11839:1:159","nodeType":"VariableDeclaration","scope":78900,"src":"11823:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78862,"nodeType":"UserDefinedTypeName","pathNode":{"id":78861,"name":"Storage","nameLocations":["11823:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"11823:7:159"},"referencedDeclaration":76699,"src":"11823:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78866,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78864,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"11843:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11823:30:159"},{"assignments":[null,78868],"declarations":[null,{"constant":false,"id":78868,"mutability":"mutable","name":"disabledTime","nameLocation":"11873:12:159","nodeType":"VariableDeclaration","scope":78900,"src":"11866:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78867,"name":"uint48","nodeType":"ElementaryTypeName","src":"11866:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78874,"initialValue":{"arguments":[{"id":78872,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78855,"src":"11907:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78869,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78863,"src":"11889:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11891:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"11889:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11898:8:159","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":87566,"src":"11889:17:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":78873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11889:24:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11863:50:159"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78875,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78868,"src":"11928:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11944:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11928:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78878,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"11949:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":78879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11954:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"11949:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":78880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11949:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78881,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78868,"src":"11968:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":78882,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78863,"src":"11983:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11985:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"11983:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"11968:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"11949:52:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11928:73:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78891,"nodeType":"IfStatement","src":"11924:138:159","trueBody":{"id":78890,"nodeType":"Block","src":"12003:59:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78887,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76535,"src":"12024:25:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12024:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78889,"nodeType":"RevertStatement","src":"12017:34:159"}]}},{"expression":{"arguments":[{"id":78897,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78855,"src":"12088:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78892,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78863,"src":"12072:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12074:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"12072:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12081:6:159","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":15026,"src":"12072:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":78898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12072:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78899,"nodeType":"ExpressionStatement","src":"12072:22:159"}]},"baseFunctions":[76866],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78858,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78855,"src":"11806:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78859,"kind":"modifierInvocation","modifierName":{"id":78857,"name":"vaultOwner","nameLocations":["11795:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":80060,"src":"11795:10:159"},"nodeType":"ModifierInvocation","src":"11795:17:159"}],"name":"unregisterVault","nameLocation":"11755:15:159","parameters":{"id":78856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78855,"mutability":"mutable","name":"vault","nameLocation":"11779:5:159","nodeType":"VariableDeclaration","scope":78901,"src":"11771:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78854,"name":"address","nodeType":"ElementaryTypeName","src":"11771:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11770:15:159"},"returnParameters":{"id":78860,"nodeType":"ParameterList","parameters":[],"src":"11813:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79097,"nodeType":"FunctionDefinition","src":"12107:1642:159","nodes":[],"body":{"id":79096,"nodeType":"Block","src":"12206:1543:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78912,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78905,"src":"12224:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12240:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12224:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78915,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76607,"src":"12243:34:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78911,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12216:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12216:64:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78918,"nodeType":"ExpressionStatement","src":"12216:64:159"},{"assignments":[78923,78926],"declarations":[{"constant":false,"id":78923,"mutability":"mutable","name":"activeOperators","nameLocation":"12309:15:159","nodeType":"VariableDeclaration","scope":79096,"src":"12292:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78921,"name":"address","nodeType":"ElementaryTypeName","src":"12292:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78922,"nodeType":"ArrayTypeName","src":"12292:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":78926,"mutability":"mutable","name":"stakes","nameLocation":"12343:6:159","nodeType":"VariableDeclaration","scope":79096,"src":"12326:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":78924,"name":"uint256","nodeType":"ElementaryTypeName","src":"12326:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78925,"nodeType":"ArrayTypeName","src":"12326:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":78930,"initialValue":{"arguments":[{"id":78928,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78903,"src":"12379:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":78927,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79240,"src":"12353:25:159","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":78929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12353:29:159","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":"12291:91:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78931,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"12397:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12413:6:159","memberName":"length","nodeType":"MemberAccess","src":"12397:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":78933,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78905,"src":"12423:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12397:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78938,"nodeType":"IfStatement","src":"12393:92:159","trueBody":{"id":78937,"nodeType":"Block","src":"12438:47:159","statements":[{"expression":{"id":78935,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"12459:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":78910,"id":78936,"nodeType":"Return","src":"12452:22:159"}]}},{"assignments":[78940],"declarations":[{"constant":false,"id":78940,"mutability":"mutable","name":"n","nameLocation":"12537:1:159","nodeType":"VariableDeclaration","scope":79096,"src":"12529:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78939,"name":"uint256","nodeType":"ElementaryTypeName","src":"12529:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78943,"initialValue":{"expression":{"id":78941,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"12541:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12557:6:159","memberName":"length","nodeType":"MemberAccess","src":"12541:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12529:34:159"},{"body":{"id":79021,"nodeType":"Block","src":"12605:336:159","statements":[{"body":{"id":79019,"nodeType":"Block","src":"12659:272:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":78968,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"12681:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78970,"indexExpression":{"id":78969,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12688:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12681:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":78971,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"12693:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78975,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78972,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12700:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12704:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12700:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12693:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12681:25:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79018,"nodeType":"IfStatement","src":"12677:240:159","trueBody":{"id":79017,"nodeType":"Block","src":"12708:209:159","statements":[{"expression":{"id":78995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":78977,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"12731:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78979,"indexExpression":{"id":78978,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12738:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12731:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":78980,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"12742:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78984,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78981,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12749:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12753:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12749:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12742:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":78985,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12730:26:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":78986,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"12760:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78990,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78987,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12767:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12771:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12767:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12760:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":78991,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"12775:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78993,"indexExpression":{"id":78992,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12782:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12775:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":78994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12759:26:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12730:55:159","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78996,"nodeType":"ExpressionStatement","src":"12730:55:159"},{"expression":{"id":79015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":78997,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"12808:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78999,"indexExpression":{"id":78998,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12824:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12808:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":79000,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"12828:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79004,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79001,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12844:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":79002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12848:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12844:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12828:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":79005,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12807:44:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":79006,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"12855:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79010,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79007,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12871:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":79008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12875:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12871:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12855:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":79011,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"12879:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79013,"indexExpression":{"id":79012,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12895:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12879:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":79014,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12854:44:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12807:91:159","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79016,"nodeType":"ExpressionStatement","src":"12807:91:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78958,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12639:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78959,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78940,"src":"12643:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":78960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12647:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12643:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78962,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78945,"src":"12651:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12643:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12639:13:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79020,"initializationExpression":{"assignments":[78955],"declarations":[{"constant":false,"id":78955,"mutability":"mutable","name":"j","nameLocation":"12632:1:159","nodeType":"VariableDeclaration","scope":79020,"src":"12624:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78954,"name":"uint256","nodeType":"ElementaryTypeName","src":"12624:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78957,"initialValue":{"hexValue":"30","id":78956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12636:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12624:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:159","subExpression":{"id":78965,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78955,"src":"12654:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78967,"nodeType":"ExpressionStatement","src":"12654:3:159"},"nodeType":"ForStatement","src":"12619:312:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78948,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78945,"src":"12593:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78949,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78940,"src":"12597:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12593:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79022,"initializationExpression":{"assignments":[78945],"declarations":[{"constant":false,"id":78945,"mutability":"mutable","name":"i","nameLocation":"12586:1:159","nodeType":"VariableDeclaration","scope":79022,"src":"12578:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78944,"name":"uint256","nodeType":"ElementaryTypeName","src":"12578:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78947,"initialValue":{"hexValue":"30","id":78946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12590:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12578:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12600:3:159","subExpression":{"id":78951,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78945,"src":"12600:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78953,"nodeType":"ExpressionStatement","src":"12600:3:159"},"nodeType":"ForStatement","src":"12573:368:159"},{"assignments":[79024],"declarations":[{"constant":false,"id":79024,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13016:14:159","nodeType":"VariableDeclaration","scope":79096,"src":"13008:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79023,"name":"uint256","nodeType":"ElementaryTypeName","src":"13008:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79026,"initialValue":{"hexValue":"31","id":79025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13033:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13008:26:159"},{"assignments":[79028],"declarations":[{"constant":false,"id":79028,"mutability":"mutable","name":"lastStake","nameLocation":"13052:9:159","nodeType":"VariableDeclaration","scope":79096,"src":"13044:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79027,"name":"uint256","nodeType":"ElementaryTypeName","src":"13044:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79034,"initialValue":{"baseExpression":{"id":79029,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"13064:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":79033,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79030,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78905,"src":"13071:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":79031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13087:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13071:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13064:25:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13044:45:159"},{"body":{"id":79058,"nodeType":"Block","src":"13164:123:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":79046,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"13182:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":79048,"indexExpression":{"id":79047,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79036,"src":"13189:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13182:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":79049,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79028,"src":"13195:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13182:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79053,"nodeType":"IfStatement","src":"13178:66:159","trueBody":{"id":79052,"nodeType":"Block","src":"13206:38:159","statements":[{"id":79051,"nodeType":"Break","src":"13224:5:159"}]}},{"expression":{"id":79056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79054,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79024,"src":"13257:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":79055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13275:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13257:19:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79057,"nodeType":"ExpressionStatement","src":"13257:19:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79039,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79036,"src":"13131:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79040,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"13135:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13151:6:159","memberName":"length","nodeType":"MemberAccess","src":"13135:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13131:26:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79059,"initializationExpression":{"assignments":[79036],"declarations":[{"constant":false,"id":79036,"mutability":"mutable","name":"i","nameLocation":"13112:1:159","nodeType":"VariableDeclaration","scope":79059,"src":"13104:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79035,"name":"uint256","nodeType":"ElementaryTypeName","src":"13104:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79038,"initialValue":{"id":79037,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78905,"src":"13116:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13104:25:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13159:3:159","subExpression":{"id":79043,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79036,"src":"13159:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79045,"nodeType":"ExpressionStatement","src":"13159:3:159"},"nodeType":"ForStatement","src":"13099:188:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79060,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79024,"src":"13301:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":79061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13318:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13301:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79092,"nodeType":"IfStatement","src":"13297:316:159","trueBody":{"id":79091,"nodeType":"Block","src":"13321:292:159","statements":[{"assignments":[79064],"declarations":[{"constant":false,"id":79064,"mutability":"mutable","name":"randomIndex","nameLocation":"13432:11:159","nodeType":"VariableDeclaration","scope":79091,"src":"13424:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79063,"name":"uint256","nodeType":"ElementaryTypeName","src":"13424:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79076,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":79070,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78903,"src":"13481:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":79068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13464:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":79069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13468:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"13464:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":79071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13464:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":79067,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13454:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":79072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13454:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13446:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":79065,"name":"uint256","nodeType":"ElementaryTypeName","src":"13446:7:159","typeDescriptions":{}}},"id":79073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13446:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":79074,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79024,"src":"13489:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13446:57:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13424:79:159"},{"expression":{"id":79089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79077,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"13517:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79081,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79078,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78905,"src":"13533:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":79079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13549:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13533:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13517:34:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":79082,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"13554:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79088,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79083,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78905,"src":"13570:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":79084,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79064,"src":"13586:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13570:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":79086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13600:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13570:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13554:48:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13517:85:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79090,"nodeType":"ExpressionStatement","src":"13517:85:159"}]}},{"AST":{"nativeSrc":"13648:62:159","nodeType":"YulBlock","src":"13648:62:159","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13669:15:159","nodeType":"YulIdentifier","src":"13669:15:159"},{"name":"maxValidators","nativeSrc":"13686:13:159","nodeType":"YulIdentifier","src":"13686:13:159"}],"functionName":{"name":"mstore","nativeSrc":"13662:6:159","nodeType":"YulIdentifier","src":"13662:6:159"},"nativeSrc":"13662:38:159","nodeType":"YulFunctionCall","src":"13662:38:159"},"nativeSrc":"13662:38:159","nodeType":"YulExpressionStatement","src":"13662:38:159"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78923,"isOffset":false,"isSlot":false,"src":"13669:15:159","valueSize":1},{"declaration":78905,"isOffset":false,"isSlot":false,"src":"13686:13:159","valueSize":1}],"flags":["memory-safe"],"id":79093,"nodeType":"InlineAssembly","src":"13623:87:159"},{"expression":{"id":79094,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78923,"src":"13727:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":78910,"id":79095,"nodeType":"Return","src":"13720:22:159"}]},"baseFunctions":[76810],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12116:14:159","parameters":{"id":78906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78903,"mutability":"mutable","name":"ts","nameLocation":"12138:2:159","nodeType":"VariableDeclaration","scope":79097,"src":"12131:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78902,"name":"uint48","nodeType":"ElementaryTypeName","src":"12131:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78905,"mutability":"mutable","name":"maxValidators","nameLocation":"12150:13:159","nodeType":"VariableDeclaration","scope":79097,"src":"12142:21:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78904,"name":"uint256","nodeType":"ElementaryTypeName","src":"12142:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12130:34:159"},"returnParameters":{"id":78910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79097,"src":"12188:16:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78907,"name":"address","nodeType":"ElementaryTypeName","src":"12188:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78908,"nodeType":"ArrayTypeName","src":"12188:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12187:18:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79138,"nodeType":"FunctionDefinition","src":"13755:372:159","nodes":[],"body":{"id":79137,"nodeType":"Block","src":"13869:258:159","nodes":[],"statements":[{"assignments":[79110,79112],"declarations":[{"constant":false,"id":79110,"mutability":"mutable","name":"enabledTime","nameLocation":"13887:11:159","nodeType":"VariableDeclaration","scope":79137,"src":"13880:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79109,"name":"uint48","nodeType":"ElementaryTypeName","src":"13880:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79112,"mutability":"mutable","name":"disabledTime","nameLocation":"13907:12:159","nodeType":"VariableDeclaration","scope":79137,"src":"13900:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79111,"name":"uint48","nodeType":"ElementaryTypeName","src":"13900:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79119,"initialValue":{"arguments":[{"id":79117,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79099,"src":"13953:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79113,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"13923:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13923:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13934:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"13923:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13944:8:159","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":87566,"src":"13923:29:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":79118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13923:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13879:83:159"},{"condition":{"id":79125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13976:44:159","subExpression":{"arguments":[{"id":79121,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79110,"src":"13990:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79122,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79112,"src":"14003:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79123,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79101,"src":"14017:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79120,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"13977:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":79124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79129,"nodeType":"IfStatement","src":"13972:83:159","trueBody":{"id":79128,"nodeType":"Block","src":"14022:33:159","statements":[{"expression":{"hexValue":"30","id":79126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14043:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":79108,"id":79127,"nodeType":"Return","src":"14036:8:159"}]}},{"expression":{"id":79135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79130,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79107,"src":"14065:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79132,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79099,"src":"14107:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79133,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79101,"src":"14117:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79131,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79496,"src":"14073:33:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":79134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14073:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14065:55:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79136,"nodeType":"ExpressionStatement","src":"14065:55:159"}]},"baseFunctions":[76820],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":79104,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79101,"src":"13841:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":79105,"kind":"modifierInvocation","modifierName":{"id":79103,"name":"validTimestamp","nameLocations":["13826:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":79954,"src":"13826:14:159"},"nodeType":"ModifierInvocation","src":"13826:18:159"}],"name":"getOperatorStakeAt","nameLocation":"13764:18:159","parameters":{"id":79102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79099,"mutability":"mutable","name":"operator","nameLocation":"13791:8:159","nodeType":"VariableDeclaration","scope":79138,"src":"13783:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79098,"name":"address","nodeType":"ElementaryTypeName","src":"13783:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79101,"mutability":"mutable","name":"ts","nameLocation":"13808:2:159","nodeType":"VariableDeclaration","scope":79138,"src":"13801:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79100,"name":"uint48","nodeType":"ElementaryTypeName","src":"13801:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13782:29:159"},"returnParameters":{"id":79108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79107,"mutability":"mutable","name":"stake","nameLocation":"13862:5:159","nodeType":"VariableDeclaration","scope":79138,"src":"13854:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79106,"name":"uint256","nodeType":"ElementaryTypeName","src":"13854:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13853:15:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79240,"nodeType":"FunctionDefinition","src":"14170:940:159","nodes":[],"body":{"id":79239,"nodeType":"Block","src":"14351:759:159","nodes":[],"statements":[{"assignments":[79154],"declarations":[{"constant":false,"id":79154,"mutability":"mutable","name":"$","nameLocation":"14377:1:159","nodeType":"VariableDeclaration","scope":79239,"src":"14361:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79153,"nodeType":"UserDefinedTypeName","pathNode":{"id":79152,"name":"Storage","nameLocations":["14361:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"14361:7:159"},"referencedDeclaration":76699,"src":"14361:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79157,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79155,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"14381:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14381:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14361:30:159"},{"expression":{"id":79167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79158,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79147,"src":"14401:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":79162,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79154,"src":"14433:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14435:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"14433:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14445:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"14433:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":79165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14433:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14419:13:159","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":79159,"name":"address","nodeType":"ElementaryTypeName","src":"14423:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79160,"nodeType":"ArrayTypeName","src":"14423:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":79166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14419:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14401:53:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79168,"nodeType":"ExpressionStatement","src":"14401:53:159"},{"expression":{"id":79178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79169,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79150,"src":"14464:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":79173,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79154,"src":"14487:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14489:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"14487:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14499:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"14487:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":79176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14487:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14473:13:159","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":79170,"name":"uint256","nodeType":"ElementaryTypeName","src":"14477:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79171,"nodeType":"ArrayTypeName","src":"14477:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":79177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14464:44:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":79179,"nodeType":"ExpressionStatement","src":"14464:44:159"},{"assignments":[79181],"declarations":[{"constant":false,"id":79181,"mutability":"mutable","name":"operatorIdx","nameLocation":"14527:11:159","nodeType":"VariableDeclaration","scope":79239,"src":"14519:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79180,"name":"uint256","nodeType":"ElementaryTypeName","src":"14519:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79183,"initialValue":{"hexValue":"30","id":79182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14541:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14519:23:159"},{"body":{"id":79236,"nodeType":"Block","src":"14600:369:159","statements":[{"assignments":[79197,79199,79201],"declarations":[{"constant":false,"id":79197,"mutability":"mutable","name":"operator","nameLocation":"14623:8:159","nodeType":"VariableDeclaration","scope":79236,"src":"14615:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79196,"name":"address","nodeType":"ElementaryTypeName","src":"14615:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79199,"mutability":"mutable","name":"enabled","nameLocation":"14640:7:159","nodeType":"VariableDeclaration","scope":79236,"src":"14633:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79198,"name":"uint48","nodeType":"ElementaryTypeName","src":"14633:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79201,"mutability":"mutable","name":"disabled","nameLocation":"14656:8:159","nodeType":"VariableDeclaration","scope":79236,"src":"14649:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79200,"name":"uint48","nodeType":"ElementaryTypeName","src":"14649:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79207,"initialValue":{"arguments":[{"id":79205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79185,"src":"14692:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":79202,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79154,"src":"14668:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14670:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"14668:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14680:11:159","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":87542,"src":"14668:23:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":79206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14668:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14614:80:159"},{"condition":{"id":79213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14713:36:159","subExpression":{"arguments":[{"id":79209,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79199,"src":"14727:7:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79210,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79201,"src":"14736:8:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79211,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79140,"src":"14746:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79208,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"14714:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":79212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14714:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79216,"nodeType":"IfStatement","src":"14709:83:159","trueBody":{"id":79215,"nodeType":"Block","src":"14751:41:159","statements":[{"id":79214,"nodeType":"Continue","src":"14769:8:159"}]}},{"expression":{"id":79221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79217,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79147,"src":"14806:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79219,"indexExpression":{"id":79218,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79181,"src":"14822:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14806:28:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79220,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79197,"src":"14837:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14806:39:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79222,"nodeType":"ExpressionStatement","src":"14806:39:159"},{"expression":{"id":79230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79223,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79150,"src":"14859:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":79225,"indexExpression":{"id":79224,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79181,"src":"14866:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14859:19:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79227,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79197,"src":"14915:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79228,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79140,"src":"14925:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79226,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79496,"src":"14881:33:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":79229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14881:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14859:69:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79231,"nodeType":"ExpressionStatement","src":"14859:69:159"},{"expression":{"id":79234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79232,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79181,"src":"14942:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":79233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14957:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14942:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79235,"nodeType":"ExpressionStatement","src":"14942:16:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79185,"src":"14569:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":79188,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79154,"src":"14573:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14575:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"14573:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14585:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"14573:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":79191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14573:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14569:24:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79237,"initializationExpression":{"assignments":[79185],"declarations":[{"constant":false,"id":79185,"mutability":"mutable","name":"i","nameLocation":"14566:1:159","nodeType":"VariableDeclaration","scope":79237,"src":"14558:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79184,"name":"uint256","nodeType":"ElementaryTypeName","src":"14558:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79186,"nodeType":"VariableDeclarationStatement","src":"14558:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14595:3:159","subExpression":{"id":79193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79185,"src":"14597:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79195,"nodeType":"ExpressionStatement","src":"14595:3:159"},"nodeType":"ForStatement","src":"14553:416:159"},{"AST":{"nativeSrc":"15004:100:159","nodeType":"YulBlock","src":"15004:100:159","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15025:15:159","nodeType":"YulIdentifier","src":"15025:15:159"},{"name":"operatorIdx","nativeSrc":"15042:11:159","nodeType":"YulIdentifier","src":"15042:11:159"}],"functionName":{"name":"mstore","nativeSrc":"15018:6:159","nodeType":"YulIdentifier","src":"15018:6:159"},"nativeSrc":"15018:36:159","nodeType":"YulFunctionCall","src":"15018:36:159"},"nativeSrc":"15018:36:159","nodeType":"YulExpressionStatement","src":"15018:36:159"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15074:6:159","nodeType":"YulIdentifier","src":"15074:6:159"},{"name":"operatorIdx","nativeSrc":"15082:11:159","nodeType":"YulIdentifier","src":"15082:11:159"}],"functionName":{"name":"mstore","nativeSrc":"15067:6:159","nodeType":"YulIdentifier","src":"15067:6:159"},"nativeSrc":"15067:27:159","nodeType":"YulFunctionCall","src":"15067:27:159"},"nativeSrc":"15067:27:159","nodeType":"YulExpressionStatement","src":"15067:27:159"}]},"evmVersion":"osaka","externalReferences":[{"declaration":79147,"isOffset":false,"isSlot":false,"src":"15025:15:159","valueSize":1},{"declaration":79181,"isOffset":false,"isSlot":false,"src":"15042:11:159","valueSize":1},{"declaration":79181,"isOffset":false,"isSlot":false,"src":"15082:11:159","valueSize":1},{"declaration":79150,"isOffset":false,"isSlot":false,"src":"15074:6:159","valueSize":1}],"flags":["memory-safe"],"id":79238,"nodeType":"InlineAssembly","src":"14979:125:159"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":79143,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79140,"src":"14267:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":79144,"kind":"modifierInvocation","modifierName":{"id":79142,"name":"validTimestamp","nameLocations":["14252:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":79954,"src":"14252:14:159"},"nodeType":"ModifierInvocation","src":"14252:18:159"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14179:25:159","parameters":{"id":79141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79140,"mutability":"mutable","name":"ts","nameLocation":"14212:2:159","nodeType":"VariableDeclaration","scope":79240,"src":"14205:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79139,"name":"uint48","nodeType":"ElementaryTypeName","src":"14205:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14204:11:159"},"returnParameters":{"id":79151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79147,"mutability":"mutable","name":"activeOperators","nameLocation":"14305:15:159","nodeType":"VariableDeclaration","scope":79240,"src":"14288:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79145,"name":"address","nodeType":"ElementaryTypeName","src":"14288:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79146,"nodeType":"ArrayTypeName","src":"14288:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":79150,"mutability":"mutable","name":"stakes","nameLocation":"14339:6:159","nodeType":"VariableDeclaration","scope":79240,"src":"14322:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":79148,"name":"uint256","nodeType":"ElementaryTypeName","src":"14322:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79149,"nodeType":"ArrayTypeName","src":"14322:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14287:59:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79356,"nodeType":"FunctionDefinition","src":"15116:952:159","nodes":[],"body":{"id":79355,"nodeType":"Block","src":"15174:894:159","nodes":[],"statements":[{"assignments":[79249],"declarations":[{"constant":false,"id":79249,"mutability":"mutable","name":"$","nameLocation":"15200:1:159","nodeType":"VariableDeclaration","scope":79355,"src":"15184:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79248,"nodeType":"UserDefinedTypeName","pathNode":{"id":79247,"name":"Storage","nameLocations":["15184:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"15184:7:159"},"referencedDeclaration":76699,"src":"15184:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79252,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79250,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"15204:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15204:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15184:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79253,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15229:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15233:6:159","memberName":"sender","nodeType":"MemberAccess","src":"15229:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":79255,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79249,"src":"15243:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15245:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"15243:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15255:18:159","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":86414,"src":"15243:30:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15229:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79263,"nodeType":"IfStatement","src":"15225:101:159","trueBody":{"id":79262,"nodeType":"Block","src":"15275:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79259,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76595,"src":"15296:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15296:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79261,"nodeType":"RevertStatement","src":"15289:26:159"}]}},{"body":{"id":79353,"nodeType":"Block","src":"15374:688:159","statements":[{"assignments":[79276],"declarations":[{"constant":false,"id":79276,"mutability":"mutable","name":"slashData","nameLocation":"15407:9:159","nodeType":"VariableDeclaration","scope":79353,"src":"15388:28:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":79275,"nodeType":"UserDefinedTypeName","pathNode":{"id":79274,"name":"SlashData","nameLocations":["15388:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":76713,"src":"15388:9:159"},"referencedDeclaration":76713,"src":"15388:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":79280,"initialValue":{"baseExpression":{"id":79277,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79244,"src":"15419:4:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":79279,"indexExpression":{"id":79278,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79265,"src":"15424:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15419:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15388:38:159"},{"condition":{"id":79287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15444:41:159","subExpression":{"arguments":[{"expression":{"id":79284,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79276,"src":"15466:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15476:8:159","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":76706,"src":"15466:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":79281,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79249,"src":"15445:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15447:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76695,"src":"15445:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15457:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"15445:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":79286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15445:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79292,"nodeType":"IfStatement","src":"15440:110:159","trueBody":{"id":79291,"nodeType":"Block","src":"15487:63:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79288,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76583,"src":"15512:21:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15512:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79290,"nodeType":"RevertStatement","src":"15505:30:159"}]}},{"body":{"id":79351,"nodeType":"Block","src":"15614:438:159","statements":[{"assignments":[79306],"declarations":[{"constant":false,"id":79306,"mutability":"mutable","name":"vaultData","nameLocation":"15656:9:159","nodeType":"VariableDeclaration","scope":79351,"src":"15632:33:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":79305,"nodeType":"UserDefinedTypeName","pathNode":{"id":79304,"name":"VaultSlashData","nameLocations":["15632:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":76704,"src":"15632:14:159"},"referencedDeclaration":76704,"src":"15632:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":79311,"initialValue":{"baseExpression":{"expression":{"id":79307,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79276,"src":"15668:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15678:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76712,"src":"15668:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$76704_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":79310,"indexExpression":{"id":79309,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79294,"src":"15685:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15668:19:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15632:55:159"},{"condition":{"id":79318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15710:35:159","subExpression":{"arguments":[{"expression":{"id":79315,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79306,"src":"15729:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":79316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15739:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":76701,"src":"15729:15:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":79312,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79249,"src":"15711:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15713:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"15711:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15720:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"15711:17:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":79317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15711:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79323,"nodeType":"IfStatement","src":"15706:109:159","trueBody":{"id":79322,"nodeType":"Block","src":"15747:68:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79319,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76580,"src":"15776:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15776:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79321,"nodeType":"RevertStatement","src":"15769:27:159"}]}},{"assignments":[79325],"declarations":[{"constant":false,"id":79325,"mutability":"mutable","name":"slasher","nameLocation":"15841:7:159","nodeType":"VariableDeclaration","scope":79351,"src":"15833:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79324,"name":"address","nodeType":"ElementaryTypeName","src":"15833:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79332,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":79327,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79306,"src":"15858:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":79328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15868:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":76701,"src":"15858:15:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79326,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"15851:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15851:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15875:7:159","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":70306,"src":"15851:31:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15851:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15833:51:159"},{"expression":{"arguments":[{"expression":{"id":79337,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79249,"src":"15958:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15960:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"15958:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79339,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79276,"src":"15972:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15982:8:159","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":76706,"src":"15972:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":79341,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79306,"src":"15992:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$76704_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":79342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16002:6:159","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":76703,"src":"15992:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":79343,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79276,"src":"16010:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16020:2:159","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":76708,"src":"16010:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":79347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16034:1:159","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":79346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16024:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79345,"name":"bytes","nodeType":"ElementaryTypeName","src":"16028:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16024:12:159","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":79334,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79325,"src":"15915:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79333,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"15902:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15902:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15945:12:159","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":69867,"src":"15902:55:159","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":79349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15902:135:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79350,"nodeType":"ExpressionStatement","src":"15902:135:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79296,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79294,"src":"15580:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":79297,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79276,"src":"15584:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":79298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15594:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76712,"src":"15584:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$76704_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":79299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15601:6:159","memberName":"length","nodeType":"MemberAccess","src":"15584:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15580:27:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79352,"initializationExpression":{"assignments":[79294],"declarations":[{"constant":false,"id":79294,"mutability":"mutable","name":"j","nameLocation":"15577:1:159","nodeType":"VariableDeclaration","scope":79352,"src":"15569:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79293,"name":"uint256","nodeType":"ElementaryTypeName","src":"15569:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79295,"nodeType":"VariableDeclarationStatement","src":"15569:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15609:3:159","subExpression":{"id":79301,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79294,"src":"15611:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79303,"nodeType":"ExpressionStatement","src":"15609:3:159"},"nodeType":"ForStatement","src":"15564:488:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79267,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79265,"src":"15352:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79268,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79244,"src":"15356:4:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":79269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15361:6:159","memberName":"length","nodeType":"MemberAccess","src":"15356:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15352:15:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79354,"initializationExpression":{"assignments":[79265],"declarations":[{"constant":false,"id":79265,"mutability":"mutable","name":"i","nameLocation":"15349:1:159","nodeType":"VariableDeclaration","scope":79354,"src":"15341:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79264,"name":"uint256","nodeType":"ElementaryTypeName","src":"15341:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79266,"nodeType":"VariableDeclarationStatement","src":"15341:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15369:3:159","subExpression":{"id":79271,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79265,"src":"15371:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79273,"nodeType":"ExpressionStatement","src":"15369:3:159"},"nodeType":"ForStatement","src":"15336:726:159"}]},"baseFunctions":[76827],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15125:12:159","parameters":{"id":79245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79244,"mutability":"mutable","name":"data","nameLocation":"15159:4:159","nodeType":"VariableDeclaration","scope":79356,"src":"15138:25:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":79242,"nodeType":"UserDefinedTypeName","pathNode":{"id":79241,"name":"SlashData","nameLocations":["15138:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":76713,"src":"15138:9:159"},"referencedDeclaration":76713,"src":"15138:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":79243,"nodeType":"ArrayTypeName","src":"15138:11:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15137:27:159"},"returnParameters":{"id":79246,"nodeType":"ParameterList","parameters":[],"src":"15174:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79425,"nodeType":"FunctionDefinition","src":"16074:528:159","nodes":[],"body":{"id":79424,"nodeType":"Block","src":"16141:461:159","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79363,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16155:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16159:6:159","memberName":"sender","nodeType":"MemberAccess","src":"16155:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79365,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"16169:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16169:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16180:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"16169:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16190:17:159","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":86416,"src":"16169:38:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16155:52:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79374,"nodeType":"IfStatement","src":"16151:108:159","trueBody":{"id":79373,"nodeType":"Block","src":"16209:50:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79370,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76598,"src":"16230:16:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16230:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79372,"nodeType":"RevertStatement","src":"16223:25:159"}]}},{"body":{"id":79422,"nodeType":"Block","src":"16310:286:159","statements":[{"assignments":[79387],"declarations":[{"constant":false,"id":79387,"mutability":"mutable","name":"slash","nameLocation":"16349:5:159","nodeType":"VariableDeclaration","scope":79422,"src":"16324:30:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":79386,"nodeType":"UserDefinedTypeName","pathNode":{"id":79385,"name":"SlashIdentifier","nameLocations":["16324:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":76718,"src":"16324:15:159"},"referencedDeclaration":76718,"src":"16324:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":79391,"initialValue":{"baseExpression":{"id":79388,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79360,"src":"16357:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":79390,"indexExpression":{"id":79389,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79376,"src":"16365:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16357:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16324:43:159"},{"condition":{"id":79399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16386:40:159","subExpression":{"arguments":[{"expression":{"id":79396,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79387,"src":"16414:5:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":79397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16420:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":76715,"src":"16414:11:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79392,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"16387:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16387:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16398:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"16387:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16405:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"16387:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":79398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16387:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79404,"nodeType":"IfStatement","src":"16382:106:159","trueBody":{"id":79403,"nodeType":"Block","src":"16428:60:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79400,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76580,"src":"16453:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79402,"nodeType":"RevertStatement","src":"16446:27:159"}]}},{"expression":{"arguments":[{"expression":{"id":79414,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79387,"src":"16559:5:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":79415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16565:5:159","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":76717,"src":"16559:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":79418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16582:1:159","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":79417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16572:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79416,"name":"bytes","nodeType":"ElementaryTypeName","src":"16576:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16572:12:159","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":79407,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79387,"src":"16522:5:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":79408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16528:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":76715,"src":"16522:11:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79406,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"16515:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16515:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16535:7:159","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":70306,"src":"16515:27:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16515:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79405,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"16502:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16502:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16546:12:159","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":69877,"src":"16502:56:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":79420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16502:83:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79421,"nodeType":"ExpressionStatement","src":"16502:83:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79376,"src":"16285:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79379,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79360,"src":"16289:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":79380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16297:6:159","memberName":"length","nodeType":"MemberAccess","src":"16289:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16285:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79423,"initializationExpression":{"assignments":[79376],"declarations":[{"constant":false,"id":79376,"mutability":"mutable","name":"i","nameLocation":"16282:1:159","nodeType":"VariableDeclaration","scope":79423,"src":"16274:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79375,"name":"uint256","nodeType":"ElementaryTypeName","src":"16274:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79377,"nodeType":"VariableDeclarationStatement","src":"16274:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16305:3:159","subExpression":{"id":79382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79376,"src":"16307:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79384,"nodeType":"ExpressionStatement","src":"16305:3:159"},"nodeType":"ForStatement","src":"16269:327:159"}]},"baseFunctions":[76834],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16083:12:159","parameters":{"id":79361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79360,"mutability":"mutable","name":"slashes","nameLocation":"16123:7:159","nodeType":"VariableDeclaration","scope":79425,"src":"16096:34:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":79358,"nodeType":"UserDefinedTypeName","pathNode":{"id":79357,"name":"SlashIdentifier","nameLocations":["16096:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":76718,"src":"16096:15:159"},"referencedDeclaration":76718,"src":"16096:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":79359,"nodeType":"ArrayTypeName","src":"16096:17:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16095:36:159"},"returnParameters":{"id":79362,"nodeType":"ParameterList","parameters":[],"src":"16141:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79496,"nodeType":"FunctionDefinition","src":"16608:556:159","nodes":[],"body":{"id":79495,"nodeType":"Block","src":"16717:447:159","nodes":[],"statements":[{"assignments":[79436],"declarations":[{"constant":false,"id":79436,"mutability":"mutable","name":"$","nameLocation":"16743:1:159","nodeType":"VariableDeclaration","scope":79495,"src":"16727:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79435,"nodeType":"UserDefinedTypeName","pathNode":{"id":79434,"name":"Storage","nameLocations":["16727:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"16727:7:159"},"referencedDeclaration":76699,"src":"16727:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79439,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79437,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"16747:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16747:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16727:30:159"},{"body":{"id":79493,"nodeType":"Block","src":"16811:347:159","statements":[{"assignments":[79453,79455,79457],"declarations":[{"constant":false,"id":79453,"mutability":"mutable","name":"vault","nameLocation":"16834:5:159","nodeType":"VariableDeclaration","scope":79493,"src":"16826:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79452,"name":"address","nodeType":"ElementaryTypeName","src":"16826:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79455,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16848:16:159","nodeType":"VariableDeclaration","scope":79493,"src":"16841:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79454,"name":"uint48","nodeType":"ElementaryTypeName","src":"16841:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79457,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16873:17:159","nodeType":"VariableDeclaration","scope":79493,"src":"16866:24:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79456,"name":"uint48","nodeType":"ElementaryTypeName","src":"16866:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79463,"initialValue":{"arguments":[{"id":79461,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79441,"src":"16915:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":79458,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79436,"src":"16894:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16896:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"16894:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16903:11:159","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":87542,"src":"16894:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":79462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16894:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16825:92:159"},{"condition":{"id":79469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16936:54:159","subExpression":{"arguments":[{"id":79465,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79455,"src":"16950:16:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79466,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79457,"src":"16968:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":79467,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79429,"src":"16987:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79464,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"16937:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":79468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16937:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79472,"nodeType":"IfStatement","src":"16932:101:159","trueBody":{"id":79471,"nodeType":"Block","src":"16992:41:159","statements":[{"id":79470,"nodeType":"Continue","src":"17010:8:159"}]}},{"expression":{"id":79491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79473,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79432,"src":"17047:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":79482,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79436,"src":"17106:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17108:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"17106:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79484,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79427,"src":"17120:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79485,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79429,"src":"17130:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":79488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17144:1:159","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":79487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17134:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79486,"name":"bytes","nodeType":"ElementaryTypeName","src":"17138:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:12:159","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":79476,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79453,"src":"17078:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79475,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"17071:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17071:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17085:9:159","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":70294,"src":"17071:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17071:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79474,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"17056:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$68884_$","typeString":"type(contract IBaseDelegator)"}},"id":79480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17056:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"id":79481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17098:7:159","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":68845,"src":"17056:49:159","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":79490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17056:91:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17047:100:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79492,"nodeType":"ExpressionStatement","src":"17047:100:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79443,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79441,"src":"16783:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":79444,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79436,"src":"16787:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16789:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":76698,"src":"16787:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":79446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16796:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"16787:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":79447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16787:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16783:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79494,"initializationExpression":{"assignments":[79441],"declarations":[{"constant":false,"id":79441,"mutability":"mutable","name":"i","nameLocation":"16780:1:159","nodeType":"VariableDeclaration","scope":79494,"src":"16772:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79440,"name":"uint256","nodeType":"ElementaryTypeName","src":"16772:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79442,"nodeType":"VariableDeclarationStatement","src":"16772:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16806:3:159","subExpression":{"id":79449,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79441,"src":"16808:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79451,"nodeType":"ExpressionStatement","src":"16806:3:159"},"nodeType":"ForStatement","src":"16767:391:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16617:33:159","parameters":{"id":79430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79427,"mutability":"mutable","name":"operator","nameLocation":"16659:8:159","nodeType":"VariableDeclaration","scope":79496,"src":"16651:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79426,"name":"address","nodeType":"ElementaryTypeName","src":"16651:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79429,"mutability":"mutable","name":"ts","nameLocation":"16676:2:159","nodeType":"VariableDeclaration","scope":79496,"src":"16669:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79428,"name":"uint48","nodeType":"ElementaryTypeName","src":"16669:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16650:29:159"},"returnParameters":{"id":79433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79432,"mutability":"mutable","name":"stake","nameLocation":"16710:5:159","nodeType":"VariableDeclaration","scope":79496,"src":"16702:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79431,"name":"uint256","nodeType":"ElementaryTypeName","src":"16702:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16701:15:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79525,"nodeType":"FunctionDefinition","src":"17170:208:159","nodes":[],"body":{"id":79524,"nodeType":"Block","src":"17272:106:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":79522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":79513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79507,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79498,"src":"17289:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":79508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17304:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17289:16:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79510,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79498,"src":"17309:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":79511,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79502,"src":"17324:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17309:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17289:37:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":79520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79514,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79500,"src":"17331:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":79515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17347:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17331:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79517,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79500,"src":"17352:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":79518,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79502,"src":"17368:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17352:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17331:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":79521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17330:41:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17289:82:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":79506,"id":79523,"nodeType":"Return","src":"17282:89:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17179:12:159","parameters":{"id":79503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79498,"mutability":"mutable","name":"enabledTime","nameLocation":"17199:11:159","nodeType":"VariableDeclaration","scope":79525,"src":"17192:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79497,"name":"uint48","nodeType":"ElementaryTypeName","src":"17192:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79500,"mutability":"mutable","name":"disabledTime","nameLocation":"17219:12:159","nodeType":"VariableDeclaration","scope":79525,"src":"17212:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79499,"name":"uint48","nodeType":"ElementaryTypeName","src":"17212:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79502,"mutability":"mutable","name":"ts","nameLocation":"17240:2:159","nodeType":"VariableDeclaration","scope":79525,"src":"17233:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79501,"name":"uint48","nodeType":"ElementaryTypeName","src":"17233:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17191:52:159"},"returnParameters":{"id":79506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79525,"src":"17266:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79504,"name":"bool","nodeType":"ElementaryTypeName","src":"17266:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17265:6:159"},"scope":80081,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":79542,"nodeType":"FunctionDefinition","src":"17423:154:159","nodes":[],"body":{"id":79541,"nodeType":"Block","src":"17479:98:159","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79530,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79527,"src":"17493:4:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17509:1:159","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":79532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17501:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79531,"name":"address","nodeType":"ElementaryTypeName","src":"17501:7:159","typeDescriptions":{}}},"id":79534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17501:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17493:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79540,"nodeType":"IfStatement","src":"17489:82:159","trueBody":{"id":79539,"nodeType":"Block","src":"17513:58:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79536,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76550,"src":"17534:24:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17534:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79538,"nodeType":"RevertStatement","src":"17527:33:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17432:19:159","parameters":{"id":79528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79527,"mutability":"mutable","name":"hook","nameLocation":"17460:4:159","nodeType":"VariableDeclaration","scope":79542,"src":"17452:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79526,"name":"address","nodeType":"ElementaryTypeName","src":"17452:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17451:14:159"},"returnParameters":{"id":79529,"nodeType":"ParameterList","parameters":[],"src":"17479:0:159"},"scope":80081,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":79630,"nodeType":"FunctionDefinition","src":"17583:2002:159","nodes":[],"body":{"id":79629,"nodeType":"Block","src":"17641:1944:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79549,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"17659:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"17659:13:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17675:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17659:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79553,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76610,"src":"17678:32:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17678:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79548,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17651:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17651:62:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79556,"nodeType":"ExpressionStatement","src":"17651:62:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79558,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"18048:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18050:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"18048:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":79560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18075:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":79561,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"18079:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18081:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":76664,"src":"18079:13:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18075:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18048:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79565,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76613,"src":"18094:36:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18094:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18040:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18040:93:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79568,"nodeType":"ExpressionStatement","src":"18040:93:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79570,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"18323:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18325:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"18323:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":79572,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"18348:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18350:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"18348:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18323:48:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79575,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76616,"src":"18373:48:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18373:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79569,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18315:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18315:109:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79578,"nodeType":"ExpressionStatement","src":"18315:109:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79580,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"18611:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18613:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"18611:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":79582,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"18633:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18635:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"18633:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18611:45:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79585,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76619,"src":"18658:45:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18658:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79579,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18603:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18603:103:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79588,"nodeType":"ExpressionStatement","src":"18603:103:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79590,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"18786:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18788:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"18786:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18806:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18786:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79594,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76622,"src":"18809:36:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18809:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18778:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18778:70:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79597,"nodeType":"ExpressionStatement","src":"18778:70:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79599,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"19058:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19060:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"19058:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19085:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19058:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79603,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76625,"src":"19088:43:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19088:45:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79598,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19050:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19050:84:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79606,"nodeType":"ExpressionStatement","src":"19050:84:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79608,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"19165:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19167:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"19165:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":79610,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"19185:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19187:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"19185:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19165:44:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":79613,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"19213:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19215:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"19213:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19165:71:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79616,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76628,"src":"19250:40:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19250:42:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79607,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19144:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19144:158:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79619,"nodeType":"ExpressionStatement","src":"19144:158:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79621,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79545,"src":"19507:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19509:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"19507:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":79623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19538:1:159","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19507:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79625,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76631,"src":"19541:34:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19541:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79620,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19499:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19499:79:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79628,"nodeType":"ExpressionStatement","src":"19499:79:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17592:16:159","parameters":{"id":79546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79545,"mutability":"mutable","name":"$","nameLocation":"17625:1:159","nodeType":"VariableDeclaration","scope":79630,"src":"17609:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79544,"nodeType":"UserDefinedTypeName","pathNode":{"id":79543,"name":"Storage","nameLocations":["17609:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"17609:7:159"},"referencedDeclaration":76699,"src":"17609:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17608:19:159"},"returnParameters":{"id":79547,"nodeType":"ParameterList","parameters":[],"src":"17641:0:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79897,"nodeType":"FunctionDefinition","src":"19633:2572:159","nodes":[],"body":{"id":79896,"nodeType":"Block","src":"19681:2524:159","nodes":[],"statements":[{"assignments":[79637],"declarations":[{"constant":false,"id":79637,"mutability":"mutable","name":"$","nameLocation":"19707:1:159","nodeType":"VariableDeclaration","scope":79896,"src":"19691:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79636,"nodeType":"UserDefinedTypeName","pathNode":{"id":79635,"name":"Storage","nameLocations":["19691:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"19691:7:159"},"referencedDeclaration":76699,"src":"19691:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79640,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79638,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"19711:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19711:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19691:30:159"},{"condition":{"id":79649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19736:54:159","subExpression":{"arguments":[{"id":79647,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"19783:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":79642,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"19747:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19749:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"19747:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19759:13:159","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":86400,"src":"19747:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79641,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68710,"src":"19737:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$68710_$","typeString":"type(contract IRegistry)"}},"id":79645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19737:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$68710","typeString":"contract IRegistry"}},"id":79646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19774:8:159","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":68695,"src":"19737:45:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":79648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19737:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79654,"nodeType":"IfStatement","src":"19732:109:159","trueBody":{"id":79653,"nodeType":"Block","src":"19792:49:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79650,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76523,"src":"19813:15:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19813:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79652,"nodeType":"RevertStatement","src":"19806:24:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":79662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79656,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"19873:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79655,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68586,"src":"19855:17:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$68586_$","typeString":"type(contract IMigratableEntity)"}},"id":79657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19855:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$68586","typeString":"contract IMigratableEntity"}},"id":79658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19881:7:159","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":68567,"src":"19855:33:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":79659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19855:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":79660,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"19894:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19896:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":76678,"src":"19894:25:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19855:64:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79667,"nodeType":"IfStatement","src":"19851:128:159","trueBody":{"id":79666,"nodeType":"Block","src":"19921:58:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79663,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76574,"src":"19942:24:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19942:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79665,"nodeType":"RevertStatement","src":"19935:33:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79669,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20000:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79668,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"19993:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19993:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20008:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":70282,"src":"19993:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19993:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":79673,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"20024:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20026:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":76686,"src":"20024:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19993:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79680,"nodeType":"IfStatement","src":"19989:100:159","trueBody":{"id":79679,"nodeType":"Block","src":"20038:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79676,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"20059:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20059:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79678,"nodeType":"RevertStatement","src":"20052:26:159"}]}},{"assignments":[79682],"declarations":[{"constant":false,"id":79682,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20134:18:159","nodeType":"VariableDeclaration","scope":79896,"src":"20127:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79681,"name":"uint48","nodeType":"ElementaryTypeName","src":"20127:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79688,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79684,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20162:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79683,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20155:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20155:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20170:13:159","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":70324,"src":"20155:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":79687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20155:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20127:58:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79689,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79682,"src":"20199:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79690,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"20220:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20222:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":76666,"src":"20220:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20199:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79697,"nodeType":"IfStatement","src":"20195:107:159","trueBody":{"id":79696,"nodeType":"Block","src":"20245:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79693,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76526,"src":"20266:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20266:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79695,"nodeType":"RevertStatement","src":"20259:32:159"}]}},{"condition":{"id":79703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20349:40:159","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79699,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20357:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79698,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20350:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20350:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20365:22:159","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":70300,"src":"20350:37:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":79702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20350:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79708,"nodeType":"IfStatement","src":"20345:103:159","trueBody":{"id":79707,"nodeType":"Block","src":"20391:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79704,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76556,"src":"20412:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20412:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79706,"nodeType":"RevertStatement","src":"20405:32:159"}]}},{"assignments":[79711],"declarations":[{"constant":false,"id":79711,"mutability":"mutable","name":"delegator","nameLocation":"20473:9:159","nodeType":"VariableDeclaration","scope":79896,"src":"20458:24:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"},"typeName":{"id":79710,"nodeType":"UserDefinedTypeName","pathNode":{"id":79709,"name":"IBaseDelegator","nameLocations":["20458:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":68884,"src":"20458:14:159"},"referencedDeclaration":68884,"src":"20458:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":79719,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79714,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20507:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79713,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20500:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20500:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20515:9:159","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":70294,"src":"20500:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20500:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79712,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"20485:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$68884_$","typeString":"type(contract IBaseDelegator)"}},"id":79718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20485:42:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20458:69:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":79722,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"20567:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20569:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"20567:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79720,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79711,"src":"20541:9:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"id":79721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20551:15:159","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":68831,"src":"20541:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":79724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20541:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":79727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20589:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":79726,"name":"uint256","nodeType":"ElementaryTypeName","src":"20589:7:159","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":79725,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20584:4:159","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":79728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20584:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":79729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20598:3:159","memberName":"max","nodeType":"MemberAccess","src":"20584:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20541:60:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79743,"nodeType":"IfStatement","src":"20537:158:159","trueBody":{"id":79742,"nodeType":"Block","src":"20603:92:159","statements":[{"expression":{"arguments":[{"id":79734,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77892,"src":"20646:18:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":79737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20671:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":79736,"name":"uint256","nodeType":"ElementaryTypeName","src":"20671:7:159","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":79735,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20666:4:159","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":79738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":79739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20680:3:159","memberName":"max","nodeType":"MemberAccess","src":"20666:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79731,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79711,"src":"20617:9:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"id":79733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20627:18:159","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":68863,"src":"20617:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":79740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20617:67:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79741,"nodeType":"ExpressionStatement","src":"20617:67:159"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79746,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79711,"src":"20739:9:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}],"id":79745,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"20724:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$68884_$","typeString":"type(contract IBaseDelegator)"}},"id":79747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20724:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68884","typeString":"contract IBaseDelegator"}},"id":79748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20750:4:159","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":68823,"src":"20724:30:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20724:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79744,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79542,"src":"20704:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20704:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79751,"nodeType":"ExpressionStatement","src":"20704:53:159"},{"condition":{"id":79757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20803:38:159","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79753,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20811:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79752,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20804:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20804:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20819:20:159","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":70312,"src":"20804:35:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":79756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20804:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79762,"nodeType":"IfStatement","src":"20799:99:159","trueBody":{"id":79761,"nodeType":"Block","src":"20843:55:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79758,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"20864:21:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20864:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79760,"nodeType":"RevertStatement","src":"20857:30:159"}]}},{"assignments":[79764],"declarations":[{"constant":false,"id":79764,"mutability":"mutable","name":"slasher","nameLocation":"20916:7:159","nodeType":"VariableDeclaration","scope":79896,"src":"20908:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79763,"name":"address","nodeType":"ElementaryTypeName","src":"20908:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79770,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79766,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"20933:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79765,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"20926:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20926:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20941:7:159","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":70306,"src":"20926:22:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20926:24:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20908:42:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":79778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79772,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79764,"src":"20972:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79771,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68478,"src":"20964:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$68478_$","typeString":"type(contract IEntity)"}},"id":79773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20964:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$68478","typeString":"contract IEntity"}},"id":79774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20981:4:159","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":68471,"src":"20964:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":79775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20964:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":79776,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"20991:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20993:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":76680,"src":"20991:21:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"20964:48:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79783,"nodeType":"IfStatement","src":"20960:111:159","trueBody":{"id":79782,"nodeType":"Block","src":"21014:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79779,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"21035:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21035:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79781,"nodeType":"RevertStatement","src":"21028:32:159"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79785,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79764,"src":"21098:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79784,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21085:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21085:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21107:12:159","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":69564,"src":"21085:34:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":79788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21085:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79793,"nodeType":"IfStatement","src":"21081:98:159","trueBody":{"id":79792,"nodeType":"Block","src":"21123:56:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79789,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76565,"src":"21144:22:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21144:24:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79791,"nodeType":"RevertStatement","src":"21137:31:159"}]}},{"assignments":[79795],"declarations":[{"constant":false,"id":79795,"mutability":"mutable","name":"vetoDuration","nameLocation":"21196:12:159","nodeType":"VariableDeclaration","scope":79896,"src":"21189:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79794,"name":"uint48","nodeType":"ElementaryTypeName","src":"21189:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79801,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79797,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79764,"src":"21224:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79796,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21211:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21211:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21233:12:159","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":69799,"src":"21211:34:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":79800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21211:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21189:58:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79802,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79795,"src":"21261:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79803,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"21276:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21278:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":76672,"src":"21276:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21261:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79810,"nodeType":"IfStatement","src":"21257:92:159","trueBody":{"id":79809,"nodeType":"Block","src":"21295:54:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79806,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"21316:20:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21316:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79808,"nodeType":"RevertStatement","src":"21309:29:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79811,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79795,"src":"21363:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":79812,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"21378:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21380:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":76674,"src":"21378:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21363:39:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79815,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79682,"src":"21405:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21363:60:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79821,"nodeType":"IfStatement","src":"21359:119:159","trueBody":{"id":79820,"nodeType":"Block","src":"21425:53:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79817,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76571,"src":"21446:19:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21446:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79819,"nodeType":"RevertStatement","src":"21439:28:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79823,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79764,"src":"21505:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79822,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21492:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21492:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21514:22:159","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":69829,"src":"21492:44:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":79826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21492:46:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":79827,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"21541:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21543:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":76676,"src":"21541:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21492:76:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79834,"nodeType":"IfStatement","src":"21488:139:159","trueBody":{"id":79833,"nodeType":"Block","src":"21570:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79830,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76589,"src":"21591:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21591:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79832,"nodeType":"RevertStatement","src":"21584:32:159"}]}},{"assignments":[79836],"declarations":[{"constant":false,"id":79836,"mutability":"mutable","name":"resolver","nameLocation":"21645:8:159","nodeType":"VariableDeclaration","scope":79896,"src":"21637:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79835,"name":"address","nodeType":"ElementaryTypeName","src":"21637:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79848,"initialValue":{"arguments":[{"expression":{"id":79841,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"21687:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21689:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":76682,"src":"21687:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":79845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21711:1:159","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":79844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21701:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79843,"name":"bytes","nodeType":"ElementaryTypeName","src":"21705:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21701:12:159","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":79838,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79764,"src":"21669:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79837,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21656:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21656:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21678:8:159","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":69851,"src":"21656:30:159","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":79847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21656:58:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21637:77:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79849,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79836,"src":"21728:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21748:1:159","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":79851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21740:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79850,"name":"address","nodeType":"ElementaryTypeName","src":"21740:7:159","typeDescriptions":{}}},"id":79853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21740:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21728:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79870,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79836,"src":"21880:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":79871,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"21892:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21894:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"21892:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:12:159","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":86418,"src":"21892:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21880:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79879,"nodeType":"IfStatement","src":"21876:147:159","trueBody":{"id":79878,"nodeType":"Block","src":"21918:105:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79875,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76586,"src":"21994:16:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21994:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79877,"nodeType":"RevertStatement","src":"21987:25:159"}]}},"id":79880,"nodeType":"IfStatement","src":"21724:299:159","trueBody":{"id":79869,"nodeType":"Block","src":"21752:118:159","statements":[{"expression":{"arguments":[{"id":79859,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77892,"src":"21800:18:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":79860,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79637,"src":"21820:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21822:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"21820:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21832:12:159","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":86418,"src":"21820:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":79865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21856:1:159","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":79864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21846:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79863,"name":"bytes","nodeType":"ElementaryTypeName","src":"21850:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21846:12:159","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":79856,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79764,"src":"21779:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79855,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69896,"src":"21766:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69896_$","typeString":"type(contract IVetoSlasher)"}},"id":79857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21766:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69896","typeString":"contract IVetoSlasher"}},"id":79858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21788:11:159","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":69895,"src":"21766:33:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":79867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21766:93:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79868,"nodeType":"ExpressionStatement","src":"21766:93:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79882,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79632,"src":"22116:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79881,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70234,"src":"22109:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$70234_$","typeString":"type(contract IVault)"}},"id":79883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22109:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$70234","typeString":"contract IVault"}},"id":79884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22124:6:159","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":70288,"src":"22109:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22109:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22144:1:159","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":79887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22136:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79886,"name":"address","nodeType":"ElementaryTypeName","src":"22136:7:159","typeDescriptions":{}}},"id":79889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22136:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22109:37:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79895,"nodeType":"IfStatement","src":"22105:94:159","trueBody":{"id":79894,"nodeType":"Block","src":"22148:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79891,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76553,"src":"22169:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22169:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79893,"nodeType":"RevertStatement","src":"22162:26:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19642:14:159","parameters":{"id":79633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79632,"mutability":"mutable","name":"_vault","nameLocation":"19665:6:159","nodeType":"VariableDeclaration","scope":79897,"src":"19657:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79631,"name":"address","nodeType":"ElementaryTypeName","src":"19657:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19656:16:159"},"returnParameters":{"id":79634,"nodeType":"ParameterList","parameters":[],"src":"19681:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79944,"nodeType":"FunctionDefinition","src":"22211:482:159","nodes":[],"body":{"id":79943,"nodeType":"Block","src":"22290:403:159","nodes":[],"statements":[{"condition":{"id":79913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22304:72:159","subExpression":{"arguments":[{"id":79911,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79901,"src":"22367:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79905,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"22315:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22315:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22326:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":76692,"src":"22315:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22336:20:159","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":86410,"src":"22315:41:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79904,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68710,"src":"22305:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$68710_$","typeString":"type(contract IRegistry)"}},"id":79909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22305:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$68710","typeString":"contract IRegistry"}},"id":79910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22358:8:159","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":68695,"src":"22305:61:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":79912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22305:71:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79918,"nodeType":"IfStatement","src":"22300:135:159","trueBody":{"id":79917,"nodeType":"Block","src":"22378:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79914,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76601,"src":"22399:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22399:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79916,"nodeType":"RevertStatement","src":"22392:32:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79920,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79901,"src":"22471:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79919,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"22449:21:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$74763_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":79921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22449:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$74763","typeString":"contract IDefaultStakerRewards"}},"id":79922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22481:5:159","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":74698,"src":"22449:37:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22449:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":79924,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79899,"src":"22492:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22449:49:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79930,"nodeType":"IfStatement","src":"22445:114:159","trueBody":{"id":79929,"nodeType":"Block","src":"22500:59:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79926,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76604,"src":"22521:25:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22521:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79928,"nodeType":"RevertStatement","src":"22514:34:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":79937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79932,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79901,"src":"22595:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79931,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"22573:21:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$74763_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":79933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$74763","typeString":"contract IDefaultStakerRewards"}},"id":79934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22605:7:159","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":74815,"src":"22573:39:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":79935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":79936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22618:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22573:46:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79942,"nodeType":"IfStatement","src":"22569:118:159","trueBody":{"id":79941,"nodeType":"Block","src":"22621:66:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79938,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76577,"src":"22642:32:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79940,"nodeType":"RevertStatement","src":"22635:41:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22220:22:159","parameters":{"id":79902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79899,"mutability":"mutable","name":"_vault","nameLocation":"22251:6:159","nodeType":"VariableDeclaration","scope":79944,"src":"22243:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79898,"name":"address","nodeType":"ElementaryTypeName","src":"22243:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79901,"mutability":"mutable","name":"_rewards","nameLocation":"22267:8:159","nodeType":"VariableDeclaration","scope":79944,"src":"22259:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79900,"name":"address","nodeType":"ElementaryTypeName","src":"22259:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22242:34:159"},"returnParameters":{"id":79903,"nodeType":"ParameterList","parameters":[],"src":"22290:0:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79954,"nodeType":"ModifierDefinition","src":"22830:82:159","nodes":[],"body":{"id":79953,"nodeType":"Block","src":"22865:47:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":79949,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79946,"src":"22891:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79948,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80001,"src":"22875:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":79950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22875:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79951,"nodeType":"ExpressionStatement","src":"22875:19:159"},{"id":79952,"nodeType":"PlaceholderStatement","src":"22904:1:159"}]},"name":"validTimestamp","nameLocation":"22839:14:159","parameters":{"id":79947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79946,"mutability":"mutable","name":"ts","nameLocation":"22861:2:159","nodeType":"VariableDeclaration","scope":79954,"src":"22854:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79945,"name":"uint48","nodeType":"ElementaryTypeName","src":"22854:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22853:11:159"},"virtual":false,"visibility":"internal"},{"id":80001,"nodeType":"FunctionDefinition","src":"22918:408:159","nodes":[],"body":{"id":80000,"nodeType":"Block","src":"22968:358:159","nodes":[],"statements":[{"assignments":[79961],"declarations":[{"constant":false,"id":79961,"mutability":"mutable","name":"$","nameLocation":"22994:1:159","nodeType":"VariableDeclaration","scope":80000,"src":"22978:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79960,"nodeType":"UserDefinedTypeName","pathNode":{"id":79959,"name":"Storage","nameLocations":["22978:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"22978:7:159"},"referencedDeclaration":76699,"src":"22978:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79964,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79962,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80014,"src":"22998:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22998:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22978:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79965,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79956,"src":"23022:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79966,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"23028:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":79967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23033:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"23028:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":79968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23028:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23022:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79974,"nodeType":"IfStatement","src":"23018:80:159","trueBody":{"id":79973,"nodeType":"Block","src":"23046:52:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79970,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76541,"src":"23067:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23067:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79972,"nodeType":"RevertStatement","src":"23060:27:159"}]}},{"assignments":[79976],"declarations":[{"constant":false,"id":79976,"mutability":"mutable","name":"gracePeriod","nameLocation":"23115:11:159","nodeType":"VariableDeclaration","scope":80000,"src":"23108:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79975,"name":"uint48","nodeType":"ElementaryTypeName","src":"23108:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79987,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79977,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79961,"src":"23129:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23131:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"23129:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79979,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79961,"src":"23153:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23155:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"23153:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23129:42:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":79984,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79961,"src":"23198:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23200:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76670,"src":"23198:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":79986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23129:87:159","trueExpression":{"expression":{"id":79982,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79961,"src":"23174:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23176:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":76668,"src":"23174:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23108:108:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79988,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79956,"src":"23230:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":79989,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79976,"src":"23235:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23230:16:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79991,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"23250:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":79992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23255:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"23250:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":79993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23250:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23230:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79999,"nodeType":"IfStatement","src":"23226:94:159","trueBody":{"id":79998,"nodeType":"Block","src":"23268:52:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79995,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76541,"src":"23289:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23289:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79997,"nodeType":"RevertStatement","src":"23282:27:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22927:15:159","parameters":{"id":79957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79956,"mutability":"mutable","name":"ts","nameLocation":"22950:2:159","nodeType":"VariableDeclaration","scope":80001,"src":"22943:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79955,"name":"uint48","nodeType":"ElementaryTypeName","src":"22943:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22942:11:159"},"returnParameters":{"id":79958,"nodeType":"ParameterList","parameters":[],"src":"22968:0:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80014,"nodeType":"FunctionDefinition","src":"23332:201:159","nodes":[],"body":{"id":80013,"nodeType":"Block","src":"23402:131:159","nodes":[],"statements":[{"assignments":[80008],"declarations":[{"constant":false,"id":80008,"mutability":"mutable","name":"slot","nameLocation":"23420:4:159","nodeType":"VariableDeclaration","scope":80013,"src":"23412:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23412:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80011,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80009,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80026,"src":"23427:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23427:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23412:32:159"},{"AST":{"nativeSrc":"23480:47:159","nodeType":"YulBlock","src":"23480:47:159","statements":[{"nativeSrc":"23494:23:159","nodeType":"YulAssignment","src":"23494:23:159","value":{"name":"slot","nativeSrc":"23513:4:159","nodeType":"YulIdentifier","src":"23513:4:159"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23494:15:159","nodeType":"YulIdentifier","src":"23494:15:159"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80005,"isOffset":false,"isSlot":true,"src":"23494:15:159","suffix":"slot","valueSize":1},{"declaration":80008,"isOffset":false,"isSlot":false,"src":"23513:4:159","valueSize":1}],"flags":["memory-safe"],"id":80012,"nodeType":"InlineAssembly","src":"23455:72:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23341:8:159","parameters":{"id":80002,"nodeType":"ParameterList","parameters":[],"src":"23349:2:159"},"returnParameters":{"id":80006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80005,"mutability":"mutable","name":"middleware","nameLocation":"23390:10:159","nodeType":"VariableDeclaration","scope":80014,"src":"23374:26:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":80004,"nodeType":"UserDefinedTypeName","pathNode":{"id":80003,"name":"Storage","nameLocations":["23374:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"23374:7:159"},"referencedDeclaration":76699,"src":"23374:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23373:28:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":80026,"nodeType":"FunctionDefinition","src":"23539:128:159","nodes":[],"body":{"id":80025,"nodeType":"Block","src":"23597:70:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":80021,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77886,"src":"23641:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80019,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"23614:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":80020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23626:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"23614:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":80022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":80023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23655:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"23614:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80018,"id":80024,"nodeType":"Return","src":"23607:53:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23548:15:159","parameters":{"id":80015,"nodeType":"ParameterList","parameters":[],"src":"23563:2:159"},"returnParameters":{"id":80018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80026,"src":"23588:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23588:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23587:9:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":80050,"nodeType":"FunctionDefinition","src":"23673:200:159","nodes":[],"body":{"id":80049,"nodeType":"Block","src":"23741:132:159","nodes":[],"statements":[{"assignments":[80034],"declarations":[{"constant":false,"id":80034,"mutability":"mutable","name":"slot","nameLocation":"23759:4:159","nodeType":"VariableDeclaration","scope":80049,"src":"23751:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23751:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80039,"initialValue":{"arguments":[{"id":80037,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80028,"src":"23793:9:159","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":80035,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"23766:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":80036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23781:11:159","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"23766:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":80038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23766:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23751:52:159"},{"expression":{"id":80047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":80043,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77886,"src":"23840:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80040,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"23813:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":80042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23825:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"23813:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":80044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23813:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":80045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23854:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"23813:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80046,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80034,"src":"23862:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23813:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80048,"nodeType":"ExpressionStatement","src":"23813:53:159"}]},"implemented":true,"kind":"function","modifiers":[{"id":80031,"kind":"modifierInvocation","modifierName":{"id":80030,"name":"onlyOwner","nameLocations":["23731:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"23731:9:159"},"nodeType":"ModifierInvocation","src":"23731:9:159"}],"name":"_setStorageSlot","nameLocation":"23682:15:159","parameters":{"id":80029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80028,"mutability":"mutable","name":"namespace","nameLocation":"23712:9:159","nodeType":"VariableDeclaration","scope":80050,"src":"23698:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":80027,"name":"string","nodeType":"ElementaryTypeName","src":"23698:6:159","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23697:25:159"},"returnParameters":{"id":80032,"nodeType":"ParameterList","parameters":[],"src":"23741:0:159"},"scope":80081,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80060,"nodeType":"ModifierDefinition","src":"23879:81:159","nodes":[],"body":{"id":80059,"nodeType":"Block","src":"23914:46:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":80055,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80052,"src":"23936:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80054,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80080,"src":"23924:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":80056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23924:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80057,"nodeType":"ExpressionStatement","src":"23924:18:159"},{"id":80058,"nodeType":"PlaceholderStatement","src":"23952:1:159"}]},"name":"vaultOwner","nameLocation":"23888:10:159","parameters":{"id":80053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80052,"mutability":"mutable","name":"vault","nameLocation":"23907:5:159","nodeType":"VariableDeclaration","scope":80060,"src":"23899:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80051,"name":"address","nodeType":"ElementaryTypeName","src":"23899:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23898:15:159"},"virtual":false,"visibility":"internal"},{"id":80080,"nodeType":"FunctionDefinition","src":"23966:181:159","nodes":[],"body":{"id":80079,"nodeType":"Block","src":"24016:131:159","nodes":[],"statements":[{"condition":{"id":80073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24030:62:159","subExpression":{"arguments":[{"id":80069,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77889,"src":"24061:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80070,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24081:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24085:6:159","memberName":"sender","nodeType":"MemberAccess","src":"24081:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":80066,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80062,"src":"24046:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80065,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"24031:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$82_$","typeString":"type(contract IAccessControl)"}},"id":80067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24031:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$82","typeString":"contract IAccessControl"}},"id":80068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24053:7:159","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":49,"src":"24031:29:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":80072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24031:61:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80078,"nodeType":"IfStatement","src":"24026:115:159","trueBody":{"id":80077,"nodeType":"Block","src":"24094:47:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":80074,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"24115:13:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24115:15:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":80076,"nodeType":"RevertStatement","src":"24108:22:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"23975:11:159","parameters":{"id":80063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80062,"mutability":"mutable","name":"vault","nameLocation":"23995:5:159","nodeType":"VariableDeclaration","scope":80080,"src":"23987:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80061,"name":"address","nodeType":"ElementaryTypeName","src":"23987:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23986:15:159"},"returnParameters":{"id":80064,"nodeType":"ParameterList","parameters":[],"src":"24016:0:159"},"scope":80081,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":77861,"name":"IMiddleware","nameLocations":["2399:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":76902,"src":"2399:11:159"},"id":77862,"nodeType":"InheritanceSpecifier","src":"2399:11:159"},{"baseName":{"id":77863,"name":"OwnableUpgradeable","nameLocations":["2412:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"2412:18:159"},"id":77864,"nodeType":"InheritanceSpecifier","src":"2412:18:159"},{"baseName":{"id":77865,"name":"ReentrancyGuardTransient","nameLocations":["2432:24:159"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"2432:24:159"},"id":77866,"nodeType":"InheritanceSpecifier","src":"2432:24:159"},{"baseName":{"id":77867,"name":"UUPSUpgradeable","nameLocations":["2458:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"2458:15:159"},"id":77868,"nodeType":"InheritanceSpecifier","src":"2458:15:159"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[80081,2079,376,6594,19465,20363,1913,76902],"name":"Middleware","nameLocation":"2385:10:159","scope":80082,"usedErrors":[995,1008,1662,1665,1936,1941,3201,6168,6514,11979,13890,19301,19306,76523,76526,76529,76532,76535,76538,76541,76544,76547,76550,76553,76556,76559,76562,76565,76568,76571,76574,76577,76580,76583,76586,76589,76592,76595,76598,76601,76604,76607,76610,76613,76616,76619,76622,76625,76628,76631,87313,87316,87319],"usedEvents":[324,1670,19312]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":159} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Mirror.json b/ethexe/ethereum/abi/Mirror.json index a27350372b0..69e2ea3ed19 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":"2661:41123:160:-:0;;;;;;;;;;;;;-1:-1:-1;;2661:41123:160;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;7664:16;;2661:41123;;;;;;;;7664:16;2661:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2661:41123:160;;;;;;-1:-1:-1;2661:41123:160;;;;;-1:-1:-1;2661:41123:160","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561017f575b610016611518565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b5565b60015415801590610149575b1561013a576001600160801b03341661009a81611472565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461086a57806336a52a181461083d57806342129d001461071b5780635ce6c327146106f8578063701da98e146106db578063704ed542146106855780637a8e0cdd146105ef57806391d5a64c146105945780639ce110d71461056b578063affed0e01461054d578063bfa28576146103f6578063c6049692146102d6578063e43f34331461026b5763f887ea4014610224575061000e565b346102685780600319360112610268576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610268578060031936011261026857610284611518565b60025460ff8116156102c7576102b090476001600160801b03169060081c6001600160a01b03166118cc565b156102b85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102685760a0366003190112610268576102f061132d565b6044359060ff82168092036103f257610307611518565b61030f6115b5565b826001600160a01b036103417f00000000000000000000000000000000000000000000000000000000000000006116aa565b16803b156103ee57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103c4575b505f516020611cbb5f395f51905f52916103ba6020926115d0565b604051908152a180f35b916103ba846103e4602094965f516020611cbb5f395f51905f52966113c6565b949250509161039f565b5080fd5b8280fd5b5034610268576080366003190112610268576004356001600160a01b038116908190036103ee576024356001600160a01b038116908190036103f25760443580151580910361054957606435926001600160801b0384168094036105455761045c6113e7565b600354906001600160a01b0382166105365760ff8260a01c16610527577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610518576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806104fd575080f35b60205f516020611cbb5f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102685780600319360112610268576020600154604051908152f35b50346102685780600319360112610268576003546040516001600160a01b039091168152602090f35b5034610268576020366003190112610268576105ae611518565b6105b66115b5565b6105be611691565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610268576024356001600160401b0381116103ee5761063c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611300565b610647929192611518565b61064f6115b5565b610657611691565b6001600160801b0334169061066b82611472565b61067f604051928392339660043585611398565b0390a280f35b5034610268576020366003190112610268575f516020611cbb5f395f51905f5260206106af61132d565b6106b7611518565b6106bf6115b5565b6106c8816115d0565b6001600160801b0360405191168152a180f35b503461026857806003193601126102685760209054604051908152f35b5034610268578060031936011261026857602060ff600254166040519015158152f35b506040366003190112610268576004356001600160401b0381116103ee57610747903690600401611300565b91906024358015158091036103f25761075e611518565b6107666115b5565b60015415801590610829575b1561081a576001600160801b0334169161078b83611472565b6001543060601b85528060145260348520945f1982146108065750916107ed6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611378565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610772565b503461026857806003193601126102685760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f08576001600160401b0360043511610f08576004353603610100600319820112610f08576108a16113e7565b6108af600435600401611343565b306001600160a01b03909116036112f1576108ce60a460043501611357565b6112d6575b60043560e401356022198201811215610f08576001600160401b03600482813501013511610f0857600481813501013560051b3603602482600435010113610f08576004803582010135600581901b8190046020149015171561012657610943600482813501013560051b61172a565b5f93845b6004848135010135861015610f2057600586901b600435850190810160240135969036036101021901871215610f085760e06023196004358701890136030112610f08576040519160c083018381106001600160401b03821117610f0c57604052600435860188016024810135845260440135906001600160a01b0382168203610f085760208401918252606460043588018a0101356001600160401b038111610f085760209060048b8a8235010101010136601f82011215610f0857610a159036906020813591016114ca565b6040850190815291608460043589018b0101356001600160801b0381168103610f085760608601908152604060a3196004358b018d0136030112610f085760405195604087018781106001600160401b03821117610f0c576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0857602088019182526080810188905260e46004358c018e01013580151596878203610f0857600199602098610b43958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113c6565b51902086820152019660a4600435870182010135610b765760206004610b6f9288823501010101611796565b0194610947565b610b8860e46004358801830101611357565b15610dd9576001600160f81b0319610ba860c46004358901840101611781565b5f1a60f81b161586826060925f14610d51575f9250610be160606004610be893869582350101010160206004878d82350101010161174f565b36916114ca565b886001600160801b03610c166080600488610c0a604483358801830101611343565b95823501010101611364565b16602083519301916207a120f1610c2b611443565b5015610c38575b50610b6f565b610c65610c4d60446004358901840101611343565b610c5f60846004358a01850101611364565b906118cc565b15610ce2575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610ca060846004358a01850101611364565b60a060046001600160e01b0319610cbe60c483358e01890101611781565b16956001600160801b038551941684528b823501010101356020820152a25f610c32565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d1560446004358901840101611343565b610d2760846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c6b565b5f928392610dd491610db7610d7360043584018601606481019060240161174f565b610d8560c46004358701890101611781565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611378565b9063ffffffff60e01b16606483015203601f1981018352826113c6565b610be8565b610dee610c4d60446004358901840101611343565b15610e99575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2c60043588018301606481019060240161174f565b610e3e60846004358b01860101611364565b60a060046001600160e01b0319610e5c60c483358f018a0101611781565b16966001600160801b03610e7d604051978897606089526060890191611378565b941660208601528c8235010101013560408301520390a2610b6f565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ecc60446004358901840101611343565b610ede60846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610df4565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610f085760043501916004830135916001600160401b038311610f08576060830236036024850113610f08578260051b908382046020148415171561012657610f8c829594939261172a565b915f955f965b858810156110c957610fca949596976001916004606083028b01019061102c611023602080850135938c816060604089019e8f611343565b980197610fd689611364565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526110166064826113c6565b5190209101520199611343565b610c5f84611364565b156110805761105b7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611364565b604080519283526001600160801b0391909116602083015290a15b0196959493610f92565b6110aa7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611364565b604080519283526001600160801b0391909116602083015290a1611076565b50832091604460043501916110dd83611357565b156112a35750916020926110f5606460043501611343565b916110fe6115b5565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111499183911c6001600160a01b03166118cc565b15611256575b50505b8254602460043501359384809203611225575b505061117e611178600435600401611343565b94611357565b61118c606460043501611343565b61119a608460043501611364565b906111a960a460043501611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261121a60ba826113c6565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611165565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061114f565b906001600160a01b036112ba600435606401611343565b166112c757602093611152565b6304c3c7a160e41b5f5260045ffd5b6112ec6112e7608460043501611364565b611472565b6108d3565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f08578235916001600160401b038311610f085760208381860195010111610f0857565b600435906001600160801b0382168203610f0857565b356001600160a01b0381168103610f085790565b358015158103610f085790565b356001600160801b0381168103610f085790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113bf916001600160801b03939796978652606060208701526060860191611378565b9416910152565b90601f801991011681019081106001600160401b03821117610f0c57604052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361141957565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610f0c57601f01601f191660200190565b3d1561146d573d9061145482611428565b9161146260405193846113c6565b82523d5f602084013e565b606090565b6001600160801b0316806114835750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114b3611443565b50156114bb57565b6308eb200360e41b5f5260045ffd5b9291926114d682611428565b916114e460405193846113c6565b829481845281830111610f08578281602093845f960137010152565b90816020910312610f0857518015158103610f085790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115aa575f9161157b575b5061156c57565b63d93c066560e01b5f5260045ffd5b61159d915060203d6020116115a3575b61159581836113c6565b810190611500565b5f611565565b503d61158b565b6040513d5f823e3d90fd5b60ff600254166115c157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115e15750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b03611619856116aa565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af19081156115aa575f91611672575b501561166357565b6303a25d1960e31b5f5260045ffd5b61168b915060203d6020116115a35761159581836113c6565b5f61165b565b6001541561169b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa9081156115aa575f916116e8575b506001600160a01b031690565b90506020813d602011611722575b81611703602093836113c6565b81010312610f0857516001600160a01b0381168103610f08575f6116db565b3d91506116f6565b6040519190601f01601f191682016001600160401b03811183821017610f0857604052565b903590601e1981360301821215610f0857018035906001600160401b038211610f0857602001918136038313610f0857565b356001600160e01b031981168103610f085790565b61179f816118f9565b156117a75750565b6117b360c08201611357565b611820575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361181b6117e860208401611343565b6117f5604085018561174f565b61180460608795939501611364565b9060405194859460018060a01b0316973585611398565b0390a2565b602081015f8061182f83611343565b8161183d604087018761174f565b9190826040519384928337810182815203926207a120f161185c611443565b501561186857506117b8565b6118927f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611343565b61189e60608401611364565b60408051943585526001600160801b0390911660208501526001600160a01b0390911692908190810161181b565b906001600160801b031690816118e3575050600190565b5f8080938193611388f16118f5611443565b5090565b611906604082018261174f565b90916001600160a01b038061191d60208401611343565b16149081611c9c575b5080611c93575b15611c8d5781358060f81c90600182101580611c82575b15611c7a5760f31c611fe016600181018310611c7a576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611c50575b80611c26575b80611bfc575b80611bd2575b80611bbb575b80611b91575b80611b67575b80611b3d575b80611b13575b80611ae9575b80611abf575b80611a95575b80611a6b575b15611a62578190035f1901918260016119ea8261172a565b93870101833760218501359460418101359160018103611a115750505090919250a1600190565b60028103611a2257505050a2600190565b600381979593969497145f14611a3e57505090919293a3600190565b600414611a51575b505050505050600190565b6061013594a45f8080808080611a46565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed8414156119d2565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a8414156119cc565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f38414156119c6565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657838414156119c0565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c38414156119ba565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c68414156119b4565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f88414156119ae565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117738414156119a8565b505f516020611cbb5f395f51905f528414156119a2565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561199c565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611996565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611990565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5484141561198a565b505050505f90565b506004821115611944565b50505f90565b5080151561192d565b6001600160801b0391506060611cb29101611364565b16155f61192656fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2661:41123:160:-:0;;;;;;;;;-1:-1:-1;9922:69:160;;:::i;:::-;42732:9;:13;;:37;;;-1:-1:-1;42728:1048:160;;;42839:33;2661:41123;;;-1:-1:-1;;;;;42732:9:160;2661:41123;;;42839:33;2661:41123;42728:1048;2661:41123;42894:7;2661:41123;;;;42893:8;:35;;;42728:1048;42889:887;;;8838:67;;:::i;:::-;8633:5;2661:41123;8633:9;;;:38;;;42889:887;2661:41123;;;-1:-1:-1;;;;;42732:9:160;2661:41123;19448:6;;;:::i;:::-;8633:5;2661:41123;19669:154;;;;42744:1;19669:154;;;;;42744:1;19669:154;2661:41123;;;;;;;8633:5;2661:41123;8633:5;2661:41123;19855:70;2661:41123;;;;;;;;;;;;;;;;;;42744:1;2661:41123;;;;42744:1;2661:41123;;;;;;;;;;;;;;;;;;;;43417:88;43562:14;;19669:154;2661:41123;;;19884:10;;19855:70;;;;42744:1;43592:115;2661:41123;42744:1;43592:115;2661:41123;;;;42744:1;2661:41123;;;;;42744:1;2661:41123;;;;;42744:1;2661:41123;;42744:1;2661:41123;8633:38;-1:-1:-1;42894:7:160;2661:41123;-1:-1:-1;;;;;2661:41123:160;8646:10;:25;8633:38;;42889:887;43744:21;;;42744:1;43744:21;2661:41123;42744:1;43744:21;42893:35;2661:41123;42924:4;2661:41123;42905:23;;42893:35;;42732:37;2661:41123;;42749:20;42732:37;;2661:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3268:31;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;9922:69;;:::i;:::-;9403:6;2661:41123;;;;;;;20706:37;;20458:21;-1:-1:-1;;;;;2661:41123:160;;;;-1:-1:-1;;;;;2661:41123:160;20706:37;:::i;:::-;2661:41123;;;;;;-1:-1:-1;;;2661:41123:160;;;;;;-1:-1:-1;;;2661:41123:160;;;;;;;;;;;;-1:-1:-1;;2661:41123:160;;;;;;:::i;:::-;;;;;;;;;;;;9922:69;;:::i;:::-;8838:67;;:::i;:::-;2661:41123;-1:-1:-1;;;;;14411:14:160;14418:6;14411:14;:::i;:::-;2661:41123;14411:79;;;;;2661:41123;;14411:79;2661:41123;;;;;;;;;14411:79;;14433:10;2661:41123;14411:79;;2661:41123;14453:4;2661:41123;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14411:79;;;;2661:41123;14527:6;-1:-1:-1;;;;;;;;;;;14527:6:160;;2661:41123;14527:6;;:::i;:::-;2661:41123;;;;;14550:39;2661:41123;;14411:79;;14527:6;14411:79;;2661:41123;14411:79;;-1:-1:-1;;;;;;;;;;;14411:79:160;;:::i;:::-;;;;;;;;;2661:41123;;;;;;;;;;;;;;-1:-1:-1;;2661:41123:160;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;9543:63;;:::i;:::-;16221:11;2661:41123;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;811:66:11;2661:41123:160;;-1:-1:-1;;;;;2661:41123:160;;811:66:11;;-1:-1:-1;;;;;;811:66:11;;;;;;;;;-1:-1:-1;;;811:66:11;;16221:11:160;811:66:11;-1:-1:-1;;;;;;811:66:11;;;;16671:30:160;16667:124;;2661:41123;;;16667:124;2661:41123;-1:-1:-1;;;;;;;;;;;2661:41123:160;;;;;;16722:58;2661:41123;;811:66:11;-1:-1:-1;;;811:66:11;;2661:41123:160;811:66:11;;2661:41123:160;-1:-1:-1;;;2661:41123:160;;;;;;-1:-1:-1;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;;;;;3598:20;2661:41123;;;;;;;;;;;;;;;;;;;;4090:26;2661:41123;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;-1:-1:-1;;2661:41123:160;;;;9922:69;;:::i;:::-;8838:67;;:::i;:::-;7844:83;;:::i;:::-;2661:41123;;;;;;12993:46;2661:41123;13028:10;12993:46;;2661:41123;;;-1:-1:-1;2661:41123:160;;-1:-1:-1;;2661:41123:160;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;12520:64;2661:41123;;;;;;:::i;:::-;9922:69;;;;;:::i;:::-;8838:67;;:::i;:::-;7844:83;;:::i;:::-;-1:-1:-1;;;;;12459:9:160;2661:41123;12497:6;;;;:::i;:::-;12520:64;2661:41123;;12555:10;;;;2661:41123;;;12520:64;;:::i;:::-;;;;2661:41123;;;;;;;;;-1:-1:-1;;2661:41123:160;;;;-1:-1:-1;;;;;;;;;;;2661:41123:160;;;:::i;:::-;9922:69;;:::i;:::-;8838:67;;:::i;:::-;10394:5;;;:::i;:::-;-1:-1:-1;;;;;2661:41123:160;;;;;;13469:39;2661:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3708:18;2661:41123;;;;;;;;;;;-1:-1:-1;2661:41123:160;;-1:-1:-1;;2661:41123:160;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9922:69;;:::i;:::-;8838:67;;:::i;:::-;8633:5;2661:41123;8633:9;;;:38;;;2661:41123;;;;-1:-1:-1;;;;;19410:9:160;2661:41123;19448:6;;;;:::i;:::-;8633:5;2661:41123;19669:154;;;;;;;;;;;2661:41123;;;;;;;;;;;;;8633:5;19855:70;2661:41123;;8633:5;2661:41123;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;19669:154;2661:41123;;;19884:10;;19855:70;;;;2661:41123;;;;;;;-1:-1:-1;;;2661:41123:160;;;;;;;;;-1:-1:-1;;;2661:41123:160;;;;;8633:38;-1:-1:-1;8660:11:160;2661:41123;-1:-1:-1;;;;;2661:41123:160;8646:10;:25;8633:38;;2661:41123;;;;;;;;;;;;;3980:24;2661:41123;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;-1:-1:-1;2661:41123:160;;-1:-1:-1;;2661:41123:160;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;-1:-1:-1;;2661:41123:160;;;;;9543:63;;:::i;:::-;17294:19;2661:41123;;;;17294:19;:::i;:::-;17325:4;-1:-1:-1;;;;;2661:41123:160;;;17294:36;2661:41123;;17482:38;;2661:41123;;17482:38;;:::i;:::-;17478:113;;2661:41123;;;17712:20;;2661:41123;-1:-1:-1;;2661:41123:160;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21547:35;2661:41123;;;;;;;;;21547:35;:::i;:::-;2661:41123;;;21658:3;2661:41123;;;;;;;21641:15;;;;;2661:41123;;;;;;;;;;;;;;;;;;-1:-1:-1;;2661:41123:160;;;;;;;-1:-1:-1;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;-1:-1:-1;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21132:273:168;2661:41123:160;;;;17482:38;2661:41123;;;;;;;21231:15:168;;2661:41123:160;;;;;;;;;;;;;;;21132:273:168;;;;;;2661:41123:160;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;21132:273:168;;;;;;;;;;:::i;:::-;2661:41123:160;21109:306:168;;4093:83:85;;;;2661:41123:160;;;;;;;;;;;17482:38;;2661:41123;;22350:7;2661:41123;;;;;;;;22350:7;:::i;:::-;2661:41123;21626:13;;;22276:162;37158:13;2661:41123;;;;;;;;37158:13;:::i;:::-;2661:41123;;;-1:-1:-1;;;;;;37209:26:160;2661:41123;;;;;;;;37209:26;:::i;:::-;2661:41123;37209:29;2661:41123;;;37209:34;37258:20;;2661:41123;37293:433;;;;;2661:41123;;;37341:16;2661:41123;;;;;;;;;;;;;;;;;;;;;;37341:16;:::i;:::-;2661:41123;;;:::i;:::-;;-1:-1:-1;;;;;37805:14:160;2661:41123;;;37758:20;2661:41123;;;;;;;;37758:20;:::i;:::-;2661:41123;;;;;;;37805:14;:::i;:::-;2661:41123;;37758:71;;;;;37789:7;37758:71;;;:::i;:::-;;37848:8;37844:513;;37293:433;37154:1562;22276:162;;37844:513;37899:52;37914:20;2661:41123;;;;;;;;37914:20;:::i;:::-;37936:14;2661:41123;;;;;;;;37936:14;:::i;:::-;37899:52;;:::i;:::-;37973:16;37969:125;;37844:513;38257:85;2661:41123;38273:14;2661:41123;;;;;;;;38273:14;:::i;:::-;17482:38;2661:41123;-1:-1:-1;;;;;;38315:26:160;2661:41123;;;;;;;;38315:26;:::i;:::-;2661:41123;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;38257:85;37844:513;;;37969:125;38018:57;38038:20;2661:41123;;;;;;;;38038:20;:::i;:::-;38060:14;2661:41123;;;;;;;;38060:14;:::i;:::-;2661:41123;;;-1:-1:-1;;;;;2661:41123:160;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;38018:57;37969:125;;37293:433;2661:41123;;;;37558:153;;2661:41123;37649:16;2661:41123;;;;;;;;;;;;37649:16;:::i;:::-;37667:26;2661:41123;;;;;;;;37667:26;:::i;:::-;2661:41123;;;;;37602:32;;;;;;37558:153;;;;2661:41123;;;;;;;37558:153;;;2661:41123;;;;;;;;;;:::i;:::-;;;;;;;;;;37558:153;2661:41123;;37558:153;;;;;;:::i;:::-;37293:433;;37154:1562;38410:52;38425:20;2661:41123;;;;;;;;38425:20;:::i;38410:52::-;38480:16;38476:117;;37154:1562;38612:93;38618:16;2661:41123;;;;;;;;;;;;38618:16;:::i;:::-;38636:14;2661:41123;;;;;;;;38636:14;:::i;:::-;17482:38;2661:41123;-1:-1:-1;;;;;;38678:26:160;2661:41123;;;;;;;;38678:26;:::i;:::-;2661:41123;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;38612:93;;;22276:162;;38476:117;38521:57;38541:20;2661:41123;;;;;;;;38541:20;:::i;:::-;38563:14;2661:41123;;;;;;;;38563:14;:::i;:::-;2661:41123;;;-1:-1:-1;;;;;2661:41123:160;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;38521:57;38476:117;;2661:41123;;;;;;;;;;;;;;;;21641:15;;;;2661:41123;21641:15;2661:41123;;;;;;;1083:131:88;;2661:41123:160;17850:23;2661:41123;;17850:23;2661:41123;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39489:33;;;;;;;:::i;:::-;39532:18;2661:41123;39566:13;2661:41123;39561:628;39596:3;39581:13;;;;;;39729:17;2661:41123;;;;;;;;;;;;;;39936:46;39951:17;2661:41123;;;;;39729:17;;;2661:41123;;39729:17;;;;;:::i;:::-;39748:11;;;;;;:::i;:::-;2661:41123;;21770:50:168;;;;2661:41123:160;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;21770:50:168;;;;;;:::i;:::-;2661:41123:160;21760:61:168;;4093:83:85;;;2661:41123:160;39951:17;;:::i;:::-;39970:11;;;:::i;39936:46::-;39970:11;;;40062;40032:42;40062:11;;:::i;:::-;2661:41123;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;40032:42;39996:183;2661:41123;39566:13;;;;;;39996:183;40152:11;40118:46;40152:11;;:::i;:::-;2661:41123;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;40118:46;39996:183;;39581:13;;;1083:131:88;2661:41123:160;;;;17954:18;;;;;:::i;:::-;;;;2661:41123;;;;18002:21;21770:50:168;2661:41123:160;;18002:21;;:::i;:::-;8838:67;;;:::i;:::-;40683:13;2661:41123;;-1:-1:-1;;;;;;2661:41123:160;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;-1:-1:-1;;2661:41123:160;20458:21;-1:-1:-1;;;;;2661:41123:160;;20706:37;;2661:41123;;;-1:-1:-1;;;;;2661:41123:160;20706:37;:::i;:::-;40907:8;40903:231;;17950:183;;;;2661:41123;;18234:24;2661:41123;;18234:24;2661:41123;18221:37;;;;;18217:110;;17950:183;2661:41123;;18536:18;18465:19;2661:41123;;;;18465:19;:::i;:::-;18536:18;;:::i;:::-;18568:21;21770:50:168;2661:41123:160;;18568:21;;:::i;:::-;18603:26;;2661:41123;;18603:26;;:::i;:::-;2661:41123;18643:38;17482;2661:41123;;17482:38;18643;:::i;:::-;2661:41123;;;22682:279:168;;;;2661:41123:160;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;;;;;;;;;22682:279:168;;;;;;:::i;:::-;2661:41123:160;22659:312:168;;2661:41123:160;;;;;;18217:110;2661:41123;41494:23;2661:41123;;;;;;41494:23;18217:110;;;;40903:231;2661:41123;;;-1:-1:-1;;;;;2661:41123:160;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;41068:55;;;40903:231;;;;17950:183;2661:41123;-1:-1:-1;;;;;18063:21:160;2661:41123;;21770:50:168;18063:21:160;;:::i;:::-;2661:41123;;;;17950:183;;;2661:41123;;;;;;;;;17478:113;17553:26;;;2661:41123;;17553:26;;:::i;:::-;;:::i;:::-;17478:113;;2661:41123;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;:::o;:::-;;-1:-1:-1;;;;;2661:41123:160;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2661:41123:160;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;2661:41123:160;;;;;;;;-1:-1:-1;;2661:41123:160;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;:::o;9698:102::-;9767:6;-1:-1:-1;;;;;2661:41123:160;9753:10;:20;2661:41123;;9698:102::o;2661:41123::-;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;-1:-1:-1;;2661:41123:160;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2661:41123:160;;;;:::o;:::-;;;:::o;10894:215::-;-1:-1:-1;;;;;2661:41123:160;10958:10;10954:149;;10894:215;:::o;10954:149::-;10967:1;11002:6;;;;;:29;;;;:::i;:::-;;2661:41123;;;10894:215::o;2661:41123::-;;;;10967:1;2661:41123;;10967:1;2661:41123;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2661:41123:160;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;10083:108::-;2661:41123;;-1:-1:-1;;;10142:24:160;;;2661:41123;10142:24;2661:41123;10150:6;-1:-1:-1;;;;;2661:41123:160;10142:24;;;;;;;-1:-1:-1;10142:24:160;;;10083:108;10141:25;2661:41123;;10083:108::o;2661:41123::-;;;;-1:-1:-1;2661:41123:160;10142:24;-1:-1:-1;2661:41123:160;10142:24;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2661:41123;;;;;;;;;8992:89;2661:41123;9050:6;2661:41123;;;;8992:89::o;2661:41123::-;;;;-1:-1:-1;2661:41123:160;;-1:-1:-1;2661:41123:160;10527:228;-1:-1:-1;;;;;2661:41123:160;10590:10;10586:163;;10527:228;:::o;10586:163::-;10638:6;;2661:41123;;10631:54;-1:-1:-1;;;;;10631:14:160;10638:6;10631:14;:::i;:::-;2661:41123;;-1:-1:-1;;;10631:54:160;;10659:10;10631:54;;;2661:41123;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;;;;;10599:1;;2661:41123;10631:54;;;;;;;10599:1;10631:54;;;10586:163;2661:41123;;;;10527:228::o;2661:41123::-;;;;10599:1;2661:41123;10631:54;10599:1;2661:41123;10631:54;;;;2661:41123;10631:54;2661:41123;10631:54;;;;;;;:::i;:::-;;;;8033:107;8098:5;2661:41123;8098:9;2661:41123;;8033:107::o;2661:41123::-;;;;-1:-1:-1;2661:41123:160;;-1:-1:-1;2661:41123:160;41698:182;2661:41123;;-1:-1:-1;;;41800:33:160;;2661:41123;41800:33;;2661:41123;;41800:33;;2661:41123;;-1:-1:-1;;;;;2661:41123:160;41800:33;;;;;;;-1:-1:-1;41800:33:160;;;41698:182;-1:-1:-1;;;;;;2661:41123:160;;41698:182::o;41800:33::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2661:41123;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;41800:33;;;;;;-1:-1:-1;41800:33:160;;863:809:85;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:85;;;-1:-1:-1;;;;;1052:614:85;;;;;;;;;;863:809::o;2661:41123:160:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;2661:41123:160;;;;;;;:::o;23061:1125::-;23319:36;;;:::i;:::-;23318:37;23314:866;;23061:1125;:::o;23314:866::-;23625:13;;;;;:::i;:::-;23621:453;;23314:866;24093:76;;24114:20;;;;;:::i;:::-;24136:16;;;;;;:::i;:::-;24154:14;;;;;;;;:::i;:::-;2661:41123;24136:16;2661:41123;;;;;;;;;;;;24093:76;;:::i;:::-;;;;23061:1125::o;23621:453::-;23676:20;;;-1:-1:-1;23676:20:160;;;;:::i;:::-;23716:16;;;;;;;:::i;:::-;2661:41123;;;23716:16;2661:41123;;;;;;;;;;;23676:57;;23707:7;23676:57;;;:::i;:::-;;23756:8;23752:308;;23621:453;;;23752:308;23976:20;23945:68;23976:20;;:::i;:::-;23998:14;;;;;:::i;:::-;23716:16;2661:41123;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;-1:-1:-1;;;;;2661:41123:160;;;;;;;;;23945:68;2661:41123;42122:253;;-1:-1:-1;;;;;2661:41123:160;42219:10;;42215:133;;42357:11;;42364:4;42122:253;:::o;42215:133::-;2661:41123;42263:46;;;;;42285:5;42263:46;;;:::i;:::-;;42323:14;:::o;27265:3845::-;27404:16;;;;;;:::i;:::-;2661:41123;;-1:-1:-1;;;;;2661:41123:160;27437:20;;;;;:::i;:::-;2661:41123;27437:38;:61;;;;27265:3845;27437:83;;;;27265:3845;27435:86;27431:129;;27600:249;;;;;27865:17;27881:1;27865:17;;;:38;;;27265:3845;27863:41;27859:84;;2983:42;;;;27881:1;2661:41123;;28084:37;;28078:83;;27881:1;28280:95;;;28946:31;28956:21;28946:31;;;:90;;;27265:3845;28946:147;;;27265:3845;28946:204;;;27265:3845;28946:265;;;27265:3845;28946:331;;;27265:3845;28946:373;;;27265:3845;28946:425;;;27265:3845;28946:465;;;27265:3845;28946:515;;;27265:3845;28946:562;;;27265:3845;28946:633;;;27265:3845;28946:687;;;27265:3845;28946:738;;;27265:3845;28931:763;28927:806;;2983:42;;;-1:-1:-1;;2983:42:160;;;27881:1;29903:21;2983:42;29903:21;:::i;:::-;29934:117;;;;;;30270:216;;;;;;;;;;27881:1;30500:17;;27881:1;;30533:83;;;;;;;;27881:1;27265:3845;:::o;30496:586::-;30652:1;30636:17;;30652:1;;30669:91;;;;27881:1;27265:3845;:::o;30632:450::-;30796:1;30780:17;;;;;;;;30776:306;30796:1;;;30813:99;;;;;;;27881:1;27265:3845;:::o;30776:306::-;30948:1;30932:17;30928:154;;30776:306;;;;;;;27881:1;27265:3845;:::o;30928:154::-;30270:216;;;30965:107;;30928:154;;;;;;;;28927:806;29710:12;;;;;2661:41123;29710:12;:::o;28946:738::-;29649:35;29659:25;29649:35;;;28946:738;;:687;29595:38;29605:28;29595:38;;;28946:687;;:633;29524:55;29534:45;29524:55;;;28946:633;;:562;29477:31;29487:21;29477:31;;;28946:562;;:515;29427:34;29437:24;29427:34;;;28946:515;;:465;29387:24;29397:14;29387:24;;;28946:465;;:425;29335:36;29345:26;29335:36;;;28946:425;;:373;29293:26;29303:16;29293:26;;;28946:373;;:331;29227:50;-1:-1:-1;;;;;;;;;;;29227:50:160;;;28946:331;;:265;29166:45;29176:35;29166:45;;;28946:265;;:204;29109:41;29119:31;29109:41;;;28946:204;;:147;29052:41;29062:31;29052:41;;;28946:147;;:90;28993:43;29003:33;28993:43;;;28946:90;;28078:83;28138:12;;;;2661:41123;28138:12;:::o;27865:38::-;27886:17;27902:1;27886:17;;;27865:38;;27431:129;27537:12;;2661:41123;27537:12;:::o;27437:83::-;27502:18;;;;27437:83;;:61;-1:-1:-1;;;;;27479:14:160;;;;;;;:::i;:::-;2661:41123;27479:19;27437:61;;","linkReferences":{},"immutableReferences":{"80106":[{"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.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54\",\"dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x842e473d73e594ced961a26890d62c8b134be06bd8926ebec648d22a947bc74b\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://077789711f31e9acc89a02b7bfbe304ed44dce4b64d4f5f88323a4cc206e8dfe\",\"dweb:/ipfs/QmPGeWPCYLKxKf4nt83nT3ckRgi6D2T9PWULhoxqGZfkSA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2\",\"dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x899d84112c86205e02c9292813fafa21bd9568394078f223b1466fc777d11f85\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://575fa2cf56888f47d9915aa03bec511b98210e830976cef23482ec68b26aee8b\",\"dweb:/ipfs/QmdJJ4YPnjvt1Wxnv1Roh2ThJSVRi6NXjHUqa4kE6xZaUs\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd\",\"dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1","urls":["bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54","dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0x842e473d73e594ced961a26890d62c8b134be06bd8926ebec648d22a947bc74b","urls":["bzz-raw://077789711f31e9acc89a02b7bfbe304ed44dce4b64d4f5f88323a4cc206e8dfe","dweb:/ipfs/QmPGeWPCYLKxKf4nt83nT3ckRgi6D2T9PWULhoxqGZfkSA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb","urls":["bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2","dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Mirror.sol":{"keccak256":"0x899d84112c86205e02c9292813fafa21bd9568394078f223b1466fc777d11f85","urls":["bzz-raw://575fa2cf56888f47d9915aa03bec511b98210e830976cef23482ec68b26aee8b","dweb:/ipfs/QmdJJ4YPnjvt1Wxnv1Roh2ThJSVRi6NXjHUqa4kE6xZaUs"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0","urls":["bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd","dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":80109,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":80112,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":80115,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":80118,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":80121,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":80124,"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":81522,"exportedSymbols":{"ERC1967Utils":[1269],"Gear":[87132],"Hashes":[62943],"ICallbacks":[76513],"IMirror":[77166],"IRouter":[77791],"IWrappedVara":[77807],"Memory":[62717],"Mirror":[81521],"StorageSlot":[6848]},"nodeType":"SourceUnit","src":"114:43671:160","nodes":[{"id":80078,"nodeType":"PragmaDirective","src":"114:24:160","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":80080,"nodeType":"ImportDirective","src":"140:84:160","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":81522,"sourceUnit":1270,"symbolAliases":[{"foreign":{"id":80079,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"148:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80082,"nodeType":"ImportDirective","src":"225:74:160","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":81522,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":80081,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"233:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80084,"nodeType":"ImportDirective","src":"300:60:160","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":81522,"sourceUnit":62718,"symbolAliases":[{"foreign":{"id":80083,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"308:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80086,"nodeType":"ImportDirective","src":"361:73:160","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":81522,"sourceUnit":62944,"symbolAliases":[{"foreign":{"id":80085,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"369:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80088,"nodeType":"ImportDirective","src":"435:46:160","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":81522,"sourceUnit":76514,"symbolAliases":[{"foreign":{"id":80087,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"443:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80090,"nodeType":"ImportDirective","src":"482:40:160","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":81522,"sourceUnit":77167,"symbolAliases":[{"foreign":{"id":80089,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"490:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80092,"nodeType":"ImportDirective","src":"523:40:160","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":81522,"sourceUnit":77792,"symbolAliases":[{"foreign":{"id":80091,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77791,"src":"531:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80094,"nodeType":"ImportDirective","src":"564:50:160","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":81522,"sourceUnit":77808,"symbolAliases":[{"foreign":{"id":80093,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"572:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80096,"nodeType":"ImportDirective","src":"615:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":81522,"sourceUnit":87133,"symbolAliases":[{"foreign":{"id":80095,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"623:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81521,"nodeType":"ContractDefinition","src":"2661:41123:160","nodes":[{"id":80103,"nodeType":"VariableDeclaration","src":"2940:85:160","nodes":[],"constant":true,"documentation":{"id":80100,"nodeType":"StructuredDocumentation","src":"2694:241:160","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":"2966:14:160","scope":81521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80101,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":80102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2983:42:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":80106,"nodeType":"VariableDeclaration","src":"3268:31:160","nodes":[],"baseFunctions":[77066],"constant":false,"documentation":{"id":80104,"nodeType":"StructuredDocumentation","src":"3032:231:160","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":"3293:6:160","scope":81521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80105,"name":"address","nodeType":"ElementaryTypeName","src":"3268:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":80109,"nodeType":"VariableDeclaration","src":"3364:24:160","nodes":[],"baseFunctions":[77072],"constant":false,"documentation":{"id":80107,"nodeType":"StructuredDocumentation","src":"3306:53:160","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"3379:9:160","scope":81521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3364:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":80112,"nodeType":"VariableDeclaration","src":"3598:20:160","nodes":[],"baseFunctions":[77078],"constant":false,"documentation":{"id":80110,"nodeType":"StructuredDocumentation","src":"3395:198:160","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":"3613:5:160","scope":81521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80111,"name":"uint256","nodeType":"ElementaryTypeName","src":"3598:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":80115,"nodeType":"VariableDeclaration","src":"3708:18:160","nodes":[],"baseFunctions":[77084],"constant":false,"documentation":{"id":80113,"nodeType":"StructuredDocumentation","src":"3625:78:160","text":" @dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"3720:6:160","scope":81521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80114,"name":"bool","nodeType":"ElementaryTypeName","src":"3708:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":80118,"nodeType":"VariableDeclaration","src":"3980:24:160","nodes":[],"baseFunctions":[77090],"constant":false,"documentation":{"id":80116,"nodeType":"StructuredDocumentation","src":"3781:194:160","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":"3995:9:160","scope":81521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80117,"name":"address","nodeType":"ElementaryTypeName","src":"3980:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":80121,"nodeType":"VariableDeclaration","src":"4090:26:160","nodes":[],"baseFunctions":[77096],"constant":false,"documentation":{"id":80119,"nodeType":"StructuredDocumentation","src":"4011:74:160","text":" @dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"4105:11:160","scope":81521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80120,"name":"address","nodeType":"ElementaryTypeName","src":"4090:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":80124,"nodeType":"VariableDeclaration","src":"7451:12:160","nodes":[],"constant":false,"documentation":{"id":80122,"nodeType":"StructuredDocumentation","src":"4123:3323:160","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":"7456:7:160","scope":81521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80123,"name":"bool","nodeType":"ElementaryTypeName","src":"7451:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":80135,"nodeType":"FunctionDefinition","src":"7625:62:160","nodes":[],"body":{"id":80134,"nodeType":"Block","src":"7654:33:160","nodes":[],"statements":[{"expression":{"id":80132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80130,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80106,"src":"7664:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80131,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80127,"src":"7673:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7664:16:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80133,"nodeType":"ExpressionStatement","src":"7664:16:160"}]},"documentation":{"id":80125,"nodeType":"StructuredDocumentation","src":"7470:150:160","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":80128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80127,"mutability":"mutable","name":"_router","nameLocation":"7645:7:160","nodeType":"VariableDeclaration","scope":80135,"src":"7637:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80126,"name":"address","nodeType":"ElementaryTypeName","src":"7637:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7636:17:160"},"returnParameters":{"id":80129,"nodeType":"ParameterList","parameters":[],"src":"7654:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80143,"nodeType":"ModifierDefinition","src":"7844:83:160","nodes":[],"body":{"id":80142,"nodeType":"Block","src":"7876:51:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80138,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80156,"src":"7886:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7886:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80140,"nodeType":"ExpressionStatement","src":"7886:23:160"},{"id":80141,"nodeType":"PlaceholderStatement","src":"7919:1:160"}]},"documentation":{"id":80136,"nodeType":"StructuredDocumentation","src":"7716:123:160","text":" @dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"7853:20:160","parameters":{"id":80137,"nodeType":"ParameterList","parameters":[],"src":"7873:2:160"},"virtual":false,"visibility":"internal"},{"id":80156,"nodeType":"FunctionDefinition","src":"8033:107:160","nodes":[],"body":{"id":80155,"nodeType":"Block","src":"8080:60:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80148,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80112,"src":"8098:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8106:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8098:9:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80151,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77024,"src":"8109:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8109:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80147,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8090:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8090:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80154,"nodeType":"ExpressionStatement","src":"8090:43:160"}]},"documentation":{"id":80144,"nodeType":"StructuredDocumentation","src":"7933:95:160","text":" @dev Internal function to check if the init message has been created before."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"8042:21:160","parameters":{"id":80145,"nodeType":"ParameterList","parameters":[],"src":"8063:2:160"},"returnParameters":{"id":80146,"nodeType":"ParameterList","parameters":[],"src":"8080:0:160"},"scope":81521,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80164,"nodeType":"ModifierDefinition","src":"8307:109:160","nodes":[],"body":{"id":80163,"nodeType":"Block","src":"8352:64:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80159,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80182,"src":"8362:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8362:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80161,"nodeType":"ExpressionStatement","src":"8362:36:160"},{"id":80162,"nodeType":"PlaceholderStatement","src":"8408:1:160"}]},"documentation":{"id":80157,"nodeType":"StructuredDocumentation","src":"8146:156:160","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":"8316:33:160","parameters":{"id":80158,"nodeType":"ParameterList","parameters":[],"src":"8349:2:160"},"virtual":false,"visibility":"internal"},{"id":80182,"nodeType":"FunctionDefinition","src":"8555:172:160","nodes":[],"body":{"id":80181,"nodeType":"Block","src":"8615:112:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80169,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80112,"src":"8633:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8641:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8633:9:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80172,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8646:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8650:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8646:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80174,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80121,"src":"8660:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8646:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8633:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80177,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77027,"src":"8673:44:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8673:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80168,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8625:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8625:95:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80180,"nodeType":"ExpressionStatement","src":"8625:95:160"}]},"documentation":{"id":80165,"nodeType":"StructuredDocumentation","src":"8422:128:160","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":"8564:34:160","parameters":{"id":80166,"nodeType":"ParameterList","parameters":[],"src":"8598:2:160"},"returnParameters":{"id":80167,"nodeType":"ParameterList","parameters":[],"src":"8615:0:160"},"scope":81521,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80190,"nodeType":"ModifierDefinition","src":"8838:67:160","nodes":[],"body":{"id":80189,"nodeType":"Block","src":"8862:43:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80185,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80202,"src":"8872:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8872:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80187,"nodeType":"ExpressionStatement","src":"8872:15:160"},{"id":80188,"nodeType":"PlaceholderStatement","src":"8897:1:160"}]},"documentation":{"id":80183,"nodeType":"StructuredDocumentation","src":"8733:100:160","text":" @dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"8847:12:160","parameters":{"id":80184,"nodeType":"ParameterList","parameters":[],"src":"8859:2:160"},"virtual":false,"visibility":"internal"},{"id":80202,"nodeType":"FunctionDefinition","src":"8992:89:160","nodes":[],"body":{"id":80201,"nodeType":"Block","src":"9031:50:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9049:7:160","subExpression":{"id":80195,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80115,"src":"9050:6:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80197,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77030,"src":"9058:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9058:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80194,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9041:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9041:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80200,"nodeType":"ExpressionStatement","src":"9041:33:160"}]},"documentation":{"id":80191,"nodeType":"StructuredDocumentation","src":"8911:76:160","text":" @dev Internal function to check if the program is active."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"9001:13:160","parameters":{"id":80192,"nodeType":"ParameterList","parameters":[],"src":"9014:2:160"},"returnParameters":{"id":80193,"nodeType":"ParameterList","parameters":[],"src":"9031:0:160"},"scope":81521,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80210,"nodeType":"ModifierDefinition","src":"9192:67:160","nodes":[],"body":{"id":80209,"nodeType":"Block","src":"9216:43:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80205,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80221,"src":"9226:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9226:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80207,"nodeType":"ExpressionStatement","src":"9226:15:160"},{"id":80208,"nodeType":"PlaceholderStatement","src":"9251:1:160"}]},"documentation":{"id":80203,"nodeType":"StructuredDocumentation","src":"9087:100:160","text":" @dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"9201:12:160","parameters":{"id":80204,"nodeType":"ParameterList","parameters":[],"src":"9213:2:160"},"virtual":false,"visibility":"internal"},{"id":80221,"nodeType":"FunctionDefinition","src":"9346:91:160","nodes":[],"body":{"id":80220,"nodeType":"Block","src":"9385:52:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80215,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80115,"src":"9403:6:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80216,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77033,"src":"9411:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9411:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80214,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9395:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9395:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80219,"nodeType":"ExpressionStatement","src":"9395:35:160"}]},"documentation":{"id":80211,"nodeType":"StructuredDocumentation","src":"9265:76:160","text":" @dev Internal function to check if the program is exited."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"9355:13:160","parameters":{"id":80212,"nodeType":"ParameterList","parameters":[],"src":"9368:2:160"},"returnParameters":{"id":80213,"nodeType":"ParameterList","parameters":[],"src":"9385:0:160"},"scope":81521,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80229,"nodeType":"ModifierDefinition","src":"9543:63:160","nodes":[],"body":{"id":80228,"nodeType":"Block","src":"9565:41:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80224,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80243,"src":"9575:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9575:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80226,"nodeType":"ExpressionStatement","src":"9575:13:160"},{"id":80227,"nodeType":"PlaceholderStatement","src":"9598:1:160"}]},"documentation":{"id":80222,"nodeType":"StructuredDocumentation","src":"9443:95:160","text":" @dev Functions marked with this modifier can only be called by the `Router`."},"name":"onlyRouter","nameLocation":"9552:10:160","parameters":{"id":80223,"nodeType":"ParameterList","parameters":[],"src":"9562:2:160"},"virtual":false,"visibility":"internal"},{"id":80243,"nodeType":"FunctionDefinition","src":"9698:102:160","nodes":[],"body":{"id":80242,"nodeType":"Block","src":"9735:65:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80234,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9753:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9757:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9753:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80236,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80106,"src":"9767:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9753:20:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80238,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77036,"src":"9775:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9775:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80233,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9745:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9745:48:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80241,"nodeType":"ExpressionStatement","src":"9745:48:160"}]},"documentation":{"id":80230,"nodeType":"StructuredDocumentation","src":"9612:81:160","text":" @dev Internal function to check if the caller is the `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"9707:11:160","parameters":{"id":80231,"nodeType":"ParameterList","parameters":[],"src":"9718:2:160"},"returnParameters":{"id":80232,"nodeType":"ParameterList","parameters":[],"src":"9735:0:160"},"scope":81521,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80251,"nodeType":"ModifierDefinition","src":"9922:69:160","nodes":[],"body":{"id":80250,"nodeType":"Block","src":"9947:44:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80246,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80267,"src":"9957:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9957:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80248,"nodeType":"ExpressionStatement","src":"9957:16:160"},{"id":80249,"nodeType":"PlaceholderStatement","src":"9983:1:160"}]},"documentation":{"id":80244,"nodeType":"StructuredDocumentation","src":"9806:111:160","text":" @dev Functions marked with this modifier can only be called when the `Router` is not paused."},"name":"whenNotPaused","nameLocation":"9931:13:160","parameters":{"id":80245,"nodeType":"ParameterList","parameters":[],"src":"9944:2:160"},"virtual":false,"visibility":"internal"},{"id":80267,"nodeType":"FunctionDefinition","src":"10083:108:160","nodes":[],"body":{"id":80266,"nodeType":"Block","src":"10123:68:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10141:25:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":80257,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80106,"src":"10150:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80256,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77791,"src":"10142:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$77791_$","typeString":"type(contract IRouter)"}},"id":80258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10142:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77791","typeString":"contract IRouter"}},"id":80259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10158:6:160","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":77532,"src":"10142:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":80260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10142:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80262,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77039,"src":"10168:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10168:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80255,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10133:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10133:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80265,"nodeType":"ExpressionStatement","src":"10133:51:160"}]},"documentation":{"id":80252,"nodeType":"StructuredDocumentation","src":"9997:81:160","text":" @dev Internal function to check if the `Router` is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"10092:14:160","parameters":{"id":80253,"nodeType":"ParameterList","parameters":[],"src":"10106:2:160"},"returnParameters":{"id":80254,"nodeType":"ParameterList","parameters":[],"src":"10123:0:160"},"scope":81521,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80278,"nodeType":"ModifierDefinition","src":"10329:89:160","nodes":[],"body":{"id":80277,"nodeType":"Block","src":"10368:50:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80273,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80270,"src":"10394:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80272,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80308,"src":"10378:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10378:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80275,"nodeType":"ExpressionStatement","src":"10378:22:160"},{"id":80276,"nodeType":"PlaceholderStatement","src":"10410:1:160"}]},"documentation":{"id":80268,"nodeType":"StructuredDocumentation","src":"10197:127:160","text":" @dev Non-zero Vara value must be transferred from source to `Router` in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"10338:14:160","parameters":{"id":80271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80270,"mutability":"mutable","name":"value","nameLocation":"10361:5:160","nodeType":"VariableDeclaration","scope":80278,"src":"10353:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80269,"name":"uint128","nodeType":"ElementaryTypeName","src":"10353:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10352:15:160"},"virtual":false,"visibility":"internal"},{"id":80308,"nodeType":"FunctionDefinition","src":"10527:228:160","nodes":[],"body":{"id":80307,"nodeType":"Block","src":"10576:179:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80284,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80281,"src":"10590:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10599:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10590:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80306,"nodeType":"IfStatement","src":"10586:163:160","trueBody":{"id":80305,"nodeType":"Block","src":"10602:147:160","statements":[{"assignments":[80288],"declarations":[{"constant":false,"id":80288,"mutability":"mutable","name":"success","nameLocation":"10621:7:160","nodeType":"VariableDeclaration","scope":80305,"src":"10616:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80287,"name":"bool","nodeType":"ElementaryTypeName","src":"10616:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80298,"initialValue":{"arguments":[{"expression":{"id":80293,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10659:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10663:6:160","memberName":"sender","nodeType":"MemberAccess","src":"10659:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80295,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80106,"src":"10671:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80296,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80281,"src":"10679:5:160","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":80290,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80106,"src":"10638:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80289,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81429,"src":"10631:6:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$77807_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":80291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10631:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":80292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10646:12:160","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"10631:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10631:54:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10616:69:160"},{"expression":{"arguments":[{"id":80300,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80288,"src":"10707:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80301,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77042,"src":"10716:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80299,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10699:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10699:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80304,"nodeType":"ExpressionStatement","src":"10699:39:160"}]}}]},"documentation":{"id":80279,"nodeType":"StructuredDocumentation","src":"10424:98:160","text":" @dev Internal function to transfer non-zero Vara value from source to `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"10536:15:160","parameters":{"id":80282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80281,"mutability":"mutable","name":"value","nameLocation":"10560:5:160","nodeType":"VariableDeclaration","scope":80308,"src":"10552:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80280,"name":"uint128","nodeType":"ElementaryTypeName","src":"10552:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10551:15:160"},"returnParameters":{"id":80283,"nodeType":"ParameterList","parameters":[],"src":"10576:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":80335,"nodeType":"FunctionDefinition","src":"10894:215:160","nodes":[],"body":{"id":80334,"nodeType":"Block","src":"10944:165:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80314,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80311,"src":"10958:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10967:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10958:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80333,"nodeType":"IfStatement","src":"10954:149:160","trueBody":{"id":80332,"nodeType":"Block","src":"10970:133:160","statements":[{"assignments":[80318,null],"declarations":[{"constant":false,"id":80318,"mutability":"mutable","name":"success","nameLocation":"10990:7:160","nodeType":"VariableDeclaration","scope":80332,"src":"10985:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80317,"name":"bool","nodeType":"ElementaryTypeName","src":"10985:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":80325,"initialValue":{"arguments":[{"hexValue":"","id":80323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11028:2:160","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":80319,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80106,"src":"11002:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11009:4:160","memberName":"call","nodeType":"MemberAccess","src":"11002:11:160","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":80322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":80321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80311,"src":"11021:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"11002:25:160","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":80324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11002:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"10984:47:160"},{"expression":{"arguments":[{"id":80327,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80318,"src":"11053:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80328,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77045,"src":"11062:27:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11062:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11045:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11045:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80331,"nodeType":"ExpressionStatement","src":"11045:47:160"}]}}]},"documentation":{"id":80309,"nodeType":"StructuredDocumentation","src":"10761:128:160","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":"10903:16:160","parameters":{"id":80312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80311,"mutability":"mutable","name":"value","nameLocation":"10928:5:160","nodeType":"VariableDeclaration","scope":80335,"src":"10920:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80310,"name":"uint128","nodeType":"ElementaryTypeName","src":"10920:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10919:15:160"},"returnParameters":{"id":80313,"nodeType":"ParameterList","parameters":[],"src":"10944:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":80353,"nodeType":"FunctionDefinition","src":"11494:216:160","nodes":[],"body":{"id":80352,"nodeType":"Block","src":"11652:58:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80348,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80338,"src":"11682:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":80349,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80340,"src":"11692:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80347,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80720,"src":"11669:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":80350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11669:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80346,"id":80351,"nodeType":"Return","src":"11662:41:160"}]},"baseFunctions":[77106],"documentation":{"id":80336,"nodeType":"StructuredDocumentation","src":"11164:325:160","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":80343,"kind":"modifierInvocation","modifierName":{"id":80342,"name":"whenNotPaused","nameLocations":["11598:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80251,"src":"11598:13:160"},"nodeType":"ModifierInvocation","src":"11598:13:160"}],"name":"sendMessage","nameLocation":"11503:11:160","parameters":{"id":80341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80338,"mutability":"mutable","name":"_payload","nameLocation":"11530:8:160","nodeType":"VariableDeclaration","scope":80353,"src":"11515:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80337,"name":"bytes","nodeType":"ElementaryTypeName","src":"11515:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80340,"mutability":"mutable","name":"_callReply","nameLocation":"11545:10:160","nodeType":"VariableDeclaration","scope":80353,"src":"11540:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80339,"name":"bool","nodeType":"ElementaryTypeName","src":"11540:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11514:42:160"},"returnParameters":{"id":80346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80345,"mutability":"mutable","name":"messageId","nameLocation":"11637:9:160","nodeType":"VariableDeclaration","scope":80353,"src":"11629:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11629:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11628:19:160"},"scope":81521,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":80388,"nodeType":"FunctionDefinition","src":"12251:340:160","nodes":[],"body":{"id":80387,"nodeType":"Block","src":"12424:167:160","nodes":[],"statements":[{"assignments":[80368],"declarations":[{"constant":false,"id":80368,"mutability":"mutable","name":"_value","nameLocation":"12442:6:160","nodeType":"VariableDeclaration","scope":80387,"src":"12434:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80367,"name":"uint128","nodeType":"ElementaryTypeName","src":"12434:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80374,"initialValue":{"arguments":[{"expression":{"id":80371,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12459:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12463:5:160","memberName":"value","nodeType":"MemberAccess","src":"12459:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12451:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80369,"name":"uint128","nodeType":"ElementaryTypeName","src":"12451:7:160","typeDescriptions":{}}},"id":80373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12451:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"12434:35:160"},{"expression":{"arguments":[{"id":80376,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80368,"src":"12497:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80375,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80335,"src":"12480:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12480:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80378,"nodeType":"ExpressionStatement","src":"12480:24:160"},{"eventCall":{"arguments":[{"id":80380,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80356,"src":"12543:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80381,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12555:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12559:6:160","memberName":"sender","nodeType":"MemberAccess","src":"12555:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80383,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80358,"src":"12567:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":80384,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80368,"src":"12577:6:160","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":80379,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76936,"src":"12520:22:160","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":80385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12520:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80386,"nodeType":"EmitStatement","src":"12515:69:160"}]},"baseFunctions":[77114],"documentation":{"id":80354,"nodeType":"StructuredDocumentation","src":"11716:530:160","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":80361,"kind":"modifierInvocation","modifierName":{"id":80360,"name":"whenNotPaused","nameLocations":["12356:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80251,"src":"12356:13:160"},"nodeType":"ModifierInvocation","src":"12356:13:160"},{"id":80363,"kind":"modifierInvocation","modifierName":{"id":80362,"name":"onlyIfActive","nameLocations":["12378:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80190,"src":"12378:12:160"},"nodeType":"ModifierInvocation","src":"12378:12:160"},{"id":80365,"kind":"modifierInvocation","modifierName":{"id":80364,"name":"onlyAfterInitMessage","nameLocations":["12399:20:160"],"nodeType":"IdentifierPath","referencedDeclaration":80143,"src":"12399:20:160"},"nodeType":"ModifierInvocation","src":"12399:20:160"}],"name":"sendReply","nameLocation":"12260:9:160","parameters":{"id":80359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80356,"mutability":"mutable","name":"_repliedTo","nameLocation":"12278:10:160","nodeType":"VariableDeclaration","scope":80388,"src":"12270:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12270:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80358,"mutability":"mutable","name":"_payload","nameLocation":"12305:8:160","nodeType":"VariableDeclaration","scope":80388,"src":"12290:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80357,"name":"bytes","nodeType":"ElementaryTypeName","src":"12290:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12269:45:160"},"returnParameters":{"id":80366,"nodeType":"ParameterList","parameters":[],"src":"12424:0:160"},"scope":81521,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":80407,"nodeType":"FunctionDefinition","src":"12881:165:160","nodes":[],"body":{"id":80406,"nodeType":"Block","src":"12978:68:160","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":80401,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80391,"src":"13016:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80402,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13028:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13032:6:160","memberName":"sender","nodeType":"MemberAccess","src":"13028:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":80400,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76943,"src":"12993:22:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":80404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12993:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80405,"nodeType":"EmitStatement","src":"12988:51:160"}]},"baseFunctions":[77120],"documentation":{"id":80389,"nodeType":"StructuredDocumentation","src":"12664:212:160","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":80394,"kind":"modifierInvocation","modifierName":{"id":80393,"name":"whenNotPaused","nameLocations":["12930:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80251,"src":"12930:13:160"},"nodeType":"ModifierInvocation","src":"12930:13:160"},{"id":80396,"kind":"modifierInvocation","modifierName":{"id":80395,"name":"onlyIfActive","nameLocations":["12944:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80190,"src":"12944:12:160"},"nodeType":"ModifierInvocation","src":"12944:12:160"},{"id":80398,"kind":"modifierInvocation","modifierName":{"id":80397,"name":"onlyAfterInitMessage","nameLocations":["12957:20:160"],"nodeType":"IdentifierPath","referencedDeclaration":80143,"src":"12957:20:160"},"nodeType":"ModifierInvocation","src":"12957:20:160"}],"name":"claimValue","nameLocation":"12890:10:160","parameters":{"id":80392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80391,"mutability":"mutable","name":"_claimedId","nameLocation":"12909:10:160","nodeType":"VariableDeclaration","scope":80407,"src":"12901:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12901:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12900:20:160"},"returnParameters":{"id":80399,"nodeType":"ParameterList","parameters":[],"src":"12978:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80425,"nodeType":"FunctionDefinition","src":"13347:168:160","nodes":[],"body":{"id":80424,"nodeType":"Block","src":"13454:61:160","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":80421,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80410,"src":"13501:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80420,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"13469:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13469:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80423,"nodeType":"EmitStatement","src":"13464:44:160"}]},"baseFunctions":[77126],"documentation":{"id":80408,"nodeType":"StructuredDocumentation","src":"13052:290:160","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":80413,"kind":"modifierInvocation","modifierName":{"id":80412,"name":"whenNotPaused","nameLocations":["13404:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80251,"src":"13404:13:160"},"nodeType":"ModifierInvocation","src":"13404:13:160"},{"id":80415,"kind":"modifierInvocation","modifierName":{"id":80414,"name":"onlyIfActive","nameLocations":["13418:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80190,"src":"13418:12:160"},"nodeType":"ModifierInvocation","src":"13418:12:160"},{"arguments":[{"id":80417,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80410,"src":"13446:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":80418,"kind":"modifierInvocation","modifierName":{"id":80416,"name":"retrievingVara","nameLocations":["13431:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":80278,"src":"13431:14:160"},"nodeType":"ModifierInvocation","src":"13431:22:160"}],"name":"executableBalanceTopUp","nameLocation":"13356:22:160","parameters":{"id":80411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80410,"mutability":"mutable","name":"_value","nameLocation":"13387:6:160","nodeType":"VariableDeclaration","scope":80425,"src":"13379:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80409,"name":"uint128","nodeType":"ElementaryTypeName","src":"13379:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13378:16:160"},"returnParameters":{"id":80419,"nodeType":"ParameterList","parameters":[],"src":"13454:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80473,"nodeType":"FunctionDefinition","src":"14222:374:160","nodes":[],"body":{"id":80472,"nodeType":"Block","src":"14397:199:160","nodes":[],"statements":[{"clauses":[{"block":{"id":80459,"nodeType":"Block","src":"14491:2:160","statements":[]},"errorName":"","id":80460,"nodeType":"TryCatchClause","src":"14491:2:160"},{"block":{"id":80461,"nodeType":"Block","src":"14500:2:160","statements":[]},"errorName":"","id":80462,"nodeType":"TryCatchClause","src":"14494:8:160"}],"externalCall":{"arguments":[{"expression":{"id":80447,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14433:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14437:6:160","memberName":"sender","nodeType":"MemberAccess","src":"14433:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80451,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14453:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$81521","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$81521","typeString":"contract Mirror"}],"id":80450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14445:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80449,"name":"address","nodeType":"ElementaryTypeName","src":"14445:7:160","typeDescriptions":{}}},"id":80452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14445:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80453,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80428,"src":"14460:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":80454,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80430,"src":"14468:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80455,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80432,"src":"14479:2:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80456,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80434,"src":"14483:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80457,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80436,"src":"14487:2:160","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":80444,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80106,"src":"14418:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80443,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81429,"src":"14411:6:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$77807_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":80445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14411:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":80446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14426:6:160","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"14411:21:160","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":80458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14411:79:160","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80463,"nodeType":"TryStatement","src":"14407:95:160"},{"expression":{"arguments":[{"id":80465,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80428,"src":"14527:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80464,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80308,"src":"14511:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14511:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80467,"nodeType":"ExpressionStatement","src":"14511:23:160"},{"eventCall":{"arguments":[{"id":80469,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80428,"src":"14582:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80468,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"14550:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14550:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80471,"nodeType":"EmitStatement","src":"14545:44:160"}]},"baseFunctions":[77140],"documentation":{"id":80426,"nodeType":"StructuredDocumentation","src":"13521:696:160","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":80439,"kind":"modifierInvocation","modifierName":{"id":80438,"name":"whenNotPaused","nameLocations":["14358:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80251,"src":"14358:13:160"},"nodeType":"ModifierInvocation","src":"14358:13:160"},{"id":80441,"kind":"modifierInvocation","modifierName":{"id":80440,"name":"onlyIfActive","nameLocations":["14380:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80190,"src":"14380:12:160"},"nodeType":"ModifierInvocation","src":"14380:12:160"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"14231:32:160","parameters":{"id":80437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80428,"mutability":"mutable","name":"_value","nameLocation":"14272:6:160","nodeType":"VariableDeclaration","scope":80473,"src":"14264:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80427,"name":"uint128","nodeType":"ElementaryTypeName","src":"14264:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80430,"mutability":"mutable","name":"_deadline","nameLocation":"14288:9:160","nodeType":"VariableDeclaration","scope":80473,"src":"14280:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80429,"name":"uint256","nodeType":"ElementaryTypeName","src":"14280:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80432,"mutability":"mutable","name":"_v","nameLocation":"14305:2:160","nodeType":"VariableDeclaration","scope":80473,"src":"14299:8:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80431,"name":"uint8","nodeType":"ElementaryTypeName","src":"14299:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80434,"mutability":"mutable","name":"_r","nameLocation":"14317:2:160","nodeType":"VariableDeclaration","scope":80473,"src":"14309:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14309:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80436,"mutability":"mutable","name":"_s","nameLocation":"14329:2:160","nodeType":"VariableDeclaration","scope":80473,"src":"14321:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14321:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14263:69:160"},"returnParameters":{"id":80442,"nodeType":"ParameterList","parameters":[],"src":"14397:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80491,"nodeType":"FunctionDefinition","src":"14842:208:160","nodes":[],"body":{"id":80490,"nodeType":"Block","src":"14907:143:160","nodes":[],"statements":[{"assignments":[null,80480],"declarations":[null,{"constant":false,"id":80480,"mutability":"mutable","name":"success","nameLocation":"14925:7:160","nodeType":"VariableDeclaration","scope":80490,"src":"14920:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80479,"name":"bool","nodeType":"ElementaryTypeName","src":"14920:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80483,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80481,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80753,"src":"14936:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":80482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14936:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"14917:52:160"},{"expression":{"arguments":[{"id":80485,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80480,"src":"14987:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80486,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77048,"src":"14996:44:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14996:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80484,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14979:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14979:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80489,"nodeType":"ExpressionStatement","src":"14979:64:160"}]},"baseFunctions":[77144],"documentation":{"id":80474,"nodeType":"StructuredDocumentation","src":"14602:235:160","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":80477,"kind":"modifierInvocation","modifierName":{"id":80476,"name":"whenNotPaused","nameLocations":["14893:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80251,"src":"14893:13:160"},"nodeType":"ModifierInvocation","src":"14893:13:160"}],"name":"transferLockedValueToInheritor","nameLocation":"14851:30:160","parameters":{"id":80475,"nodeType":"ParameterList","parameters":[],"src":"14881:2:160"},"returnParameters":{"id":80478,"nodeType":"ParameterList","parameters":[],"src":"14907:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80570,"nodeType":"FunctionDefinition","src":"16048:749:160","nodes":[],"body":{"id":80569,"nodeType":"Block","src":"16203:594:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80506,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80121,"src":"16221:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16244: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":80508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16236:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80507,"name":"address","nodeType":"ElementaryTypeName","src":"16236:7:160","typeDescriptions":{}}},"id":80510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16236:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16221:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80512,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77050,"src":"16248:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16248:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80505,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16213:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16213:59:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80515,"nodeType":"ExpressionStatement","src":"16213:59:160"},{"expression":{"arguments":[{"id":80518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16291:8:160","subExpression":{"id":80517,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80124,"src":"16292:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80519,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77052,"src":"16301:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16301:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80516,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16283:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16283:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80522,"nodeType":"ExpressionStatement","src":"16283:38:160"},{"assignments":[80527],"declarations":[{"constant":false,"id":80527,"mutability":"mutable","name":"implementationSlot","nameLocation":"16364:18:160","nodeType":"VariableDeclaration","scope":80569,"src":"16332:50:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":80526,"nodeType":"UserDefinedTypeName","pathNode":{"id":80525,"name":"StorageSlot.AddressSlot","nameLocations":["16332:11:160","16344:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":6730,"src":"16332:23:160"},"referencedDeclaration":6730,"src":"16332:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":80533,"initialValue":{"arguments":[{"expression":{"id":80530,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"16424:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$1269_$","typeString":"type(library ERC1967Utils)"}},"id":80531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16437:19:160","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":990,"src":"16424:32:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80528,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"16397:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":80529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16409:14:160","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":6759,"src":"16397:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6730_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":80532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16397:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16332:125:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80535,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80527,"src":"16476:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":80536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16495:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6729,"src":"16476:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16512: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":80538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16504:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80537,"name":"address","nodeType":"ElementaryTypeName","src":"16504:7:160","typeDescriptions":{}}},"id":80540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16504:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16476:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80542,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77054,"src":"16516:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16516:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80534,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16468:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:73:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80545,"nodeType":"ExpressionStatement","src":"16468:73:160"},{"expression":{"id":80548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80546,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80121,"src":"16552:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80547,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80494,"src":"16566:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16552:26:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80549,"nodeType":"ExpressionStatement","src":"16552:26:160"},{"expression":{"id":80552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80550,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80124,"src":"16588:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80551,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80498,"src":"16598:8:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16588:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80553,"nodeType":"ExpressionStatement","src":"16588:18:160"},{"expression":{"id":80558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80554,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80527,"src":"16616:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":80556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16635:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6729,"src":"16616:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80557,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"16643:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16616:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80559,"nodeType":"ExpressionStatement","src":"16616:40:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80560,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80500,"src":"16671:25:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16700:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16671:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80568,"nodeType":"IfStatement","src":"16667:124:160","trueBody":{"id":80567,"nodeType":"Block","src":"16703:88:160","statements":[{"eventCall":{"arguments":[{"id":80564,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80500,"src":"16754:25:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80563,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"16722:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16722:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80566,"nodeType":"EmitStatement","src":"16717:63:160"}]}}]},"baseFunctions":[77156],"documentation":{"id":80492,"nodeType":"StructuredDocumentation","src":"15110:933:160","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":80503,"kind":"modifierInvocation","modifierName":{"id":80502,"name":"onlyRouter","nameLocations":["16188:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":80229,"src":"16188:10:160"},"nodeType":"ModifierInvocation","src":"16188:10:160"}],"name":"initialize","nameLocation":"16057:10:160","parameters":{"id":80501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80494,"mutability":"mutable","name":"_initializer","nameLocation":"16076:12:160","nodeType":"VariableDeclaration","scope":80570,"src":"16068:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80493,"name":"address","nodeType":"ElementaryTypeName","src":"16068:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80496,"mutability":"mutable","name":"_abiInterface","nameLocation":"16098:13:160","nodeType":"VariableDeclaration","scope":80570,"src":"16090:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80495,"name":"address","nodeType":"ElementaryTypeName","src":"16090:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80498,"mutability":"mutable","name":"_isSmall","nameLocation":"16118:8:160","nodeType":"VariableDeclaration","scope":80570,"src":"16113:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80497,"name":"bool","nodeType":"ElementaryTypeName","src":"16113:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":80500,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"16136:25:160","nodeType":"VariableDeclaration","scope":80570,"src":"16128:33:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80499,"name":"uint128","nodeType":"ElementaryTypeName","src":"16128:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16067:95:160"},"returnParameters":{"id":80504,"nodeType":"ParameterList","parameters":[],"src":"16203:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80670,"nodeType":"FunctionDefinition","src":"17011:1748:160","nodes":[],"body":{"id":80669,"nodeType":"Block","src":"17183:1576:160","nodes":[],"statements":[{"documentation":" @dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80582,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"17294:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17306:7:160","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":86169,"src":"17294:19:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":80586,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17325:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$81521","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$81521","typeString":"contract Mirror"}],"id":80585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17317:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80584,"name":"address","nodeType":"ElementaryTypeName","src":"17317:7:160","typeDescriptions":{}}},"id":80587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17317:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17294:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80589,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77056,"src":"17332:14:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17332:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17286:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17286:63:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80592,"nodeType":"ExpressionStatement","src":"17286:63:160"},{"condition":{"expression":{"id":80593,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"17482:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17494:26:160","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":86184,"src":"17482:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":80601,"nodeType":"IfStatement","src":"17478:113:160","trueBody":{"id":80600,"nodeType":"Block","src":"17522:69:160","statements":[{"expression":{"arguments":[{"expression":{"id":80596,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"17553:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17565:14:160","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":86181,"src":"17553:26:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80595,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80335,"src":"17536:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17536:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80599,"nodeType":"ExpressionStatement","src":"17536:44:160"}]}},{"assignments":[80604],"declarations":[{"constant":false,"id":80604,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"17677:18:160","nodeType":"VariableDeclaration","scope":80669,"src":"17669:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17669:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":80609,"initialValue":{"arguments":[{"expression":{"id":80606,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"17712:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17724:8:160","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":86194,"src":"17712:20:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86126_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$86126_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":80605,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80851,"src":"17698:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$86126_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":80608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17698:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17669:64:160"},{"assignments":[80612],"declarations":[{"constant":false,"id":80612,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"17819:15:160","nodeType":"VariableDeclaration","scope":80669,"src":"17811:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17811:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send value for each claim.","id":80617,"initialValue":{"arguments":[{"expression":{"id":80614,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"17850:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17862:11:160","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":86189,"src":"17850:23:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86235_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86235_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":80613,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81359,"src":"17837:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$86235_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":80616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17837:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17811:63:160"},{"condition":{"expression":{"id":80618,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"17954:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17966:6:160","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":86175,"src":"17954:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":80638,"nodeType":"Block","src":"18041:92:160","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80627,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18063:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18075:9:160","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":86178,"src":"18063:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18096: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":80630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18088:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80629,"name":"address","nodeType":"ElementaryTypeName","src":"18088:7:160","typeDescriptions":{}}},"id":80632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18088:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18063:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80634,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77058,"src":"18100:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18100:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80626,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18055:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18055:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80637,"nodeType":"ExpressionStatement","src":"18055:67:160"}]},"id":80639,"nodeType":"IfStatement","src":"17950:183:160","trueBody":{"id":80625,"nodeType":"Block","src":"17974:61:160","statements":[{"expression":{"arguments":[{"expression":{"id":80621,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18002:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18014:9:160","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":86178,"src":"18002:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80620,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81392,"src":"17988:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":80623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17988:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80624,"nodeType":"ExpressionStatement","src":"17988:36:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80640,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"18221:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80641,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18234:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"18234:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18221:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Update the state hash if changed.","id":80650,"nodeType":"IfStatement","src":"18217:110:160","trueBody":{"id":80649,"nodeType":"Block","src":"18260:67:160","statements":[{"expression":{"arguments":[{"expression":{"id":80645,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18291:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18303:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"18291:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80644,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81407,"src":"18274:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18274:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80648,"nodeType":"ExpressionStatement","src":"18274:42:160"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":80653,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18465:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18477:7:160","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":86169,"src":"18465:19:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80655,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18498:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18510:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"18498:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80657,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18536:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18548:6:160","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":86175,"src":"18536:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":80659,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18568:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18580:9:160","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":86178,"src":"18568:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80661,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18603:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18615:14:160","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":86181,"src":"18603:26:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":80663,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80574,"src":"18643:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18655:26:160","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":86184,"src":"18643:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":80665,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80612,"src":"18695:15:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80666,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80604,"src":"18724:18:160","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":80651,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"18427:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":80652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18432:19:160","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":86483,"src":"18427:24:160","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":80667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18427:325:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80580,"id":80668,"nodeType":"Return","src":"18420:332:160"}]},"baseFunctions":[77165],"documentation":{"id":80571,"nodeType":"StructuredDocumentation","src":"16803:203:160","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":80577,"kind":"modifierInvocation","modifierName":{"id":80576,"name":"onlyRouter","nameLocations":["17127:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":80229,"src":"17127:10:160"},"nodeType":"ModifierInvocation","src":"17127:10:160"}],"name":"performStateTransition","nameLocation":"17020:22:160","parameters":{"id":80575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80574,"mutability":"mutable","name":"_transition","nameLocation":"17073:11:160","nodeType":"VariableDeclaration","scope":80670,"src":"17043:41:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":80573,"nodeType":"UserDefinedTypeName","pathNode":{"id":80572,"name":"Gear.StateTransition","nameLocations":["17043:4:160","17048:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":86195,"src":"17043:20:160"},"referencedDeclaration":86195,"src":"17043:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"17042:43:160"},"returnParameters":{"id":80580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80579,"mutability":"mutable","name":"transitionHash","nameLocation":"17163:14:160","nodeType":"VariableDeclaration","scope":80670,"src":"17155:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17155:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17154:24:160"},"scope":81521,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":80720,"nodeType":"FunctionDefinition","src":"19192:760:160","nodes":[],"body":{"id":80719,"nodeType":"Block","src":"19375:577:160","nodes":[],"statements":[{"assignments":[80685],"declarations":[{"constant":false,"id":80685,"mutability":"mutable","name":"_value","nameLocation":"19393:6:160","nodeType":"VariableDeclaration","scope":80719,"src":"19385:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80684,"name":"uint128","nodeType":"ElementaryTypeName","src":"19385:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80691,"initialValue":{"arguments":[{"expression":{"id":80688,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19410:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19414:5:160","memberName":"value","nodeType":"MemberAccess","src":"19410:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19402:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80686,"name":"uint128","nodeType":"ElementaryTypeName","src":"19402:7:160","typeDescriptions":{}}},"id":80690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19402:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"19385:35:160"},{"expression":{"arguments":[{"id":80693,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80685,"src":"19448:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80692,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80335,"src":"19431:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19431:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80695,"nodeType":"ExpressionStatement","src":"19431:24:160"},{"assignments":[80697],"declarations":[{"constant":false,"id":80697,"mutability":"mutable","name":"_nonce","nameLocation":"19474:6:160","nodeType":"VariableDeclaration","scope":80719,"src":"19466:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80696,"name":"uint256","nodeType":"ElementaryTypeName","src":"19466:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80699,"initialValue":{"id":80698,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80112,"src":"19483:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19466:22:160"},{"assignments":[80702],"declarations":[{"constant":false,"id":80702,"mutability":"mutable","name":"id","nameLocation":"19657:2:160","nodeType":"VariableDeclaration","scope":80719,"src":"19649:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19649:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate unique message ID by formula:\n - `keccak256(abi.encodePacked(address(this), nonce++))`","id":80703,"nodeType":"VariableDeclarationStatement","src":"19649:10:160"},{"AST":{"nativeSrc":"19694:129:160","nodeType":"YulBlock","src":"19694:129:160","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19715:4:160","nodeType":"YulLiteral","src":"19715:4:160","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"19725:2:160","nodeType":"YulLiteral","src":"19725:2:160","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"19729:7:160","nodeType":"YulIdentifier","src":"19729:7:160"},"nativeSrc":"19729:9:160","nodeType":"YulFunctionCall","src":"19729:9:160"}],"functionName":{"name":"shl","nativeSrc":"19721:3:160","nodeType":"YulIdentifier","src":"19721:3:160"},"nativeSrc":"19721:18:160","nodeType":"YulFunctionCall","src":"19721:18:160"}],"functionName":{"name":"mstore","nativeSrc":"19708:6:160","nodeType":"YulIdentifier","src":"19708:6:160"},"nativeSrc":"19708:32:160","nodeType":"YulFunctionCall","src":"19708:32:160"},"nativeSrc":"19708:32:160","nodeType":"YulExpressionStatement","src":"19708:32:160"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19760:4:160","nodeType":"YulLiteral","src":"19760:4:160","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"19766:6:160","nodeType":"YulIdentifier","src":"19766:6:160"}],"functionName":{"name":"mstore","nativeSrc":"19753:6:160","nodeType":"YulIdentifier","src":"19753:6:160"},"nativeSrc":"19753:20:160","nodeType":"YulFunctionCall","src":"19753:20:160"},"nativeSrc":"19753:20:160","nodeType":"YulExpressionStatement","src":"19753:20:160"},{"nativeSrc":"19786:27:160","nodeType":"YulAssignment","src":"19786:27:160","value":{"arguments":[{"kind":"number","nativeSrc":"19802:4:160","nodeType":"YulLiteral","src":"19802:4:160","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19808:4:160","nodeType":"YulLiteral","src":"19808:4:160","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"19792:9:160","nodeType":"YulIdentifier","src":"19792:9:160"},"nativeSrc":"19792:21:160","nodeType":"YulFunctionCall","src":"19792:21:160"},"variableNames":[{"name":"id","nativeSrc":"19786:2:160","nodeType":"YulIdentifier","src":"19786:2:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80697,"isOffset":false,"isSlot":false,"src":"19766:6:160","valueSize":1},{"declaration":80702,"isOffset":false,"isSlot":false,"src":"19786:2:160","valueSize":1}],"flags":["memory-safe"],"id":80704,"nodeType":"InlineAssembly","src":"19669:154:160"},{"expression":{"id":80706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19832:7:160","subExpression":{"id":80705,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80112,"src":"19832:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80707,"nodeType":"ExpressionStatement","src":"19832:7:160"},{"eventCall":{"arguments":[{"id":80709,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80702,"src":"19880:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80710,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19884:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19888:6:160","memberName":"sender","nodeType":"MemberAccess","src":"19884:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80712,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80673,"src":"19896:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":80713,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80685,"src":"19906:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":80714,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80675,"src":"19914:10:160","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":80708,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76925,"src":"19855:24:160","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":80715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19855:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80716,"nodeType":"EmitStatement","src":"19850:75:160"},{"expression":{"id":80717,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80702,"src":"19943:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80683,"id":80718,"nodeType":"Return","src":"19936:9:160"}]},"documentation":{"id":80671,"nodeType":"StructuredDocumentation","src":"18823:364:160","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":80678,"kind":"modifierInvocation","modifierName":{"id":80677,"name":"onlyIfActive","nameLocations":["19280:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80190,"src":"19280:12:160"},"nodeType":"ModifierInvocation","src":"19280:12:160"},{"id":80680,"kind":"modifierInvocation","modifierName":{"id":80679,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["19301:33:160"],"nodeType":"IdentifierPath","referencedDeclaration":80164,"src":"19301:33:160"},"nodeType":"ModifierInvocation","src":"19301:33:160"}],"name":"_sendMessage","nameLocation":"19201:12:160","parameters":{"id":80676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80673,"mutability":"mutable","name":"_payload","nameLocation":"19229:8:160","nodeType":"VariableDeclaration","scope":80720,"src":"19214:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80672,"name":"bytes","nodeType":"ElementaryTypeName","src":"19214:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80675,"mutability":"mutable","name":"_callReply","nameLocation":"19244:10:160","nodeType":"VariableDeclaration","scope":80720,"src":"19239:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80674,"name":"bool","nodeType":"ElementaryTypeName","src":"19239:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19213:42:160"},"returnParameters":{"id":80683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80682,"mutability":"mutable","name":"messageId","nameLocation":"19360:9:160","nodeType":"VariableDeclaration","scope":80720,"src":"19352:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80681,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19352:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19351:19:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80753,"nodeType":"FunctionDefinition","src":"20281:470:160","nodes":[],"body":{"id":80752,"nodeType":"Block","src":"20430:321:160","nodes":[],"statements":[{"assignments":[80731],"declarations":[{"constant":false,"id":80731,"mutability":"mutable","name":"balance","nameLocation":"20448:7:160","nodeType":"VariableDeclaration","scope":80752,"src":"20440:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80730,"name":"uint256","nodeType":"ElementaryTypeName","src":"20440:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80737,"initialValue":{"expression":{"arguments":[{"id":80734,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20466:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$81521","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$81521","typeString":"contract Mirror"}],"id":80733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20458:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80732,"name":"address","nodeType":"ElementaryTypeName","src":"20458:7:160","typeDescriptions":{}}},"id":80735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20458:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20472:7:160","memberName":"balance","nodeType":"MemberAccess","src":"20458:21:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20440:39:160"},{"assignments":[80739],"declarations":[{"constant":false,"id":80739,"mutability":"mutable","name":"balance128","nameLocation":"20647:10:160","nodeType":"VariableDeclaration","scope":80752,"src":"20639:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80738,"name":"uint128","nodeType":"ElementaryTypeName","src":"20639:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80744,"initialValue":{"arguments":[{"id":80742,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80731,"src":"20668:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20660:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80740,"name":"uint128","nodeType":"ElementaryTypeName","src":"20660:7:160","typeDescriptions":{}}},"id":80743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20660:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"20639:37:160"},{"expression":{"components":[{"id":80745,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80739,"src":"20694:10:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":80747,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80118,"src":"20721:9:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80748,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80739,"src":"20732:10:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80746,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"20706:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":80749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20706:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80750,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20693:51:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":80729,"id":80751,"nodeType":"Return","src":"20686:58:160"}]},"documentation":{"id":80721,"nodeType":"StructuredDocumentation","src":"19958:318:160","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":80724,"kind":"modifierInvocation","modifierName":{"id":80723,"name":"onlyIfExited","nameLocations":["20348:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80210,"src":"20348:12:160"},"nodeType":"ModifierInvocation","src":"20348:12:160"}],"name":"_transferLockedValueToInheritor","nameLocation":"20290:31:160","parameters":{"id":80722,"nodeType":"ParameterList","parameters":[],"src":"20321:2:160"},"returnParameters":{"id":80729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80726,"mutability":"mutable","name":"valueTransferred","nameLocation":"20386:16:160","nodeType":"VariableDeclaration","scope":80753,"src":"20378:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80725,"name":"uint128","nodeType":"ElementaryTypeName","src":"20378:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80728,"mutability":"mutable","name":"transferSuccess","nameLocation":"20409:15:160","nodeType":"VariableDeclaration","scope":80753,"src":"20404:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80727,"name":"bool","nodeType":"ElementaryTypeName","src":"20404:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20377:48:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80851,"nodeType":"FunctionDefinition","src":"21319:1232:160","nodes":[],"body":{"id":80850,"nodeType":"Block","src":"21403:1148:160","nodes":[],"statements":[{"assignments":[80764],"declarations":[{"constant":false,"id":80764,"mutability":"mutable","name":"messagesLen","nameLocation":"21421:11:160","nodeType":"VariableDeclaration","scope":80850,"src":"21413:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80763,"name":"uint256","nodeType":"ElementaryTypeName","src":"21413:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80767,"initialValue":{"expression":{"id":80765,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80758,"src":"21435:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86126_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":80766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21445:6:160","memberName":"length","nodeType":"MemberAccess","src":"21435:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21413:38:160"},{"assignments":[80769],"declarations":[{"constant":false,"id":80769,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"21469:18:160","nodeType":"VariableDeclaration","scope":80850,"src":"21461:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80768,"name":"uint256","nodeType":"ElementaryTypeName","src":"21461:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80773,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80770,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80764,"src":"21490:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":80771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21504:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21490:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21461:45:160"},{"assignments":[80775],"declarations":[{"constant":false,"id":80775,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"21524:20:160","nodeType":"VariableDeclaration","scope":80850,"src":"21516:28:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80774,"name":"uint256","nodeType":"ElementaryTypeName","src":"21516:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80780,"initialValue":{"arguments":[{"id":80778,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80769,"src":"21563:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80776,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"21547:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":80777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21554:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"21547:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":80779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21547:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21516:66:160"},{"assignments":[80782],"declarations":[{"constant":false,"id":80782,"mutability":"mutable","name":"offset","nameLocation":"21600:6:160","nodeType":"VariableDeclaration","scope":80850,"src":"21592:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80781,"name":"uint256","nodeType":"ElementaryTypeName","src":"21592:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80784,"initialValue":{"hexValue":"30","id":80783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21609:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21592:18:160"},{"body":{"id":80841,"nodeType":"Block","src":"21663:785:160","statements":[{"assignments":[80799],"declarations":[{"constant":false,"id":80799,"mutability":"mutable","name":"message","nameLocation":"21699:7:160","nodeType":"VariableDeclaration","scope":80841,"src":"21677:29:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80798,"nodeType":"UserDefinedTypeName","pathNode":{"id":80797,"name":"Gear.Message","nameLocations":["21677:4:160","21682:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":86126,"src":"21677:12:160"},"referencedDeclaration":86126,"src":"21677:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":80803,"initialValue":{"baseExpression":{"id":80800,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80758,"src":"21709:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86126_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":80802,"indexExpression":{"id":80801,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80786,"src":"21719:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21709:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"21677:44:160"},{"assignments":[80806],"declarations":[{"constant":false,"id":80806,"mutability":"mutable","name":"messageHash","nameLocation":"21827:11:160","nodeType":"VariableDeclaration","scope":80841,"src":"21819:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21819:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":80811,"initialValue":{"arguments":[{"id":80809,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80799,"src":"21858:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":80807,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"21841:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":80808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21846:11:160","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":86424,"src":"21841:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$86126_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":80810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21841:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21819:47:160"},{"documentation":" @dev Store the message hash in memory at messagesHashes[offset : offset+32].","expression":{"arguments":[{"id":80815,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80775,"src":"22030:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80816,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80782,"src":"22052:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80817,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80806,"src":"22060:11:160","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":80812,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"22004:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":80814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22011:18:160","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"22004:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":80818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22004:68:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80819,"nodeType":"ExpressionStatement","src":"22004:68:160"},{"id":80824,"nodeType":"UncheckedBlock","src":"22086:55:160","statements":[{"expression":{"id":80822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80820,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80782,"src":"22114:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":80821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22124:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22114:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80823,"nodeType":"ExpressionStatement","src":"22114:12:160"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80825,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80799,"src":"22280:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22288:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86122,"src":"22280:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22301:2:160","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":86161,"src":"22280:23:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22307:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22280:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Send the message based on its type (`Gear.Message` or `Gear.Reply`).","falseBody":{"id":80839,"nodeType":"Block","src":"22379:59:160","statements":[{"expression":{"arguments":[{"id":80836,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80799,"src":"22415:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":80835,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81246,"src":"22397:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$86126_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":80837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22397:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80838,"nodeType":"ExpressionStatement","src":"22397:26:160"}]},"id":80840,"nodeType":"IfStatement","src":"22276:162:160","trueBody":{"id":80834,"nodeType":"Block","src":"22310:63:160","statements":[{"expression":{"arguments":[{"id":80831,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80799,"src":"22350:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":80830,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80905,"src":"22328:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$86126_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":80832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22328:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80833,"nodeType":"ExpressionStatement","src":"22328:30:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80789,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80786,"src":"21641:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":80790,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80764,"src":"21645:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21641:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80842,"initializationExpression":{"assignments":[80786],"declarations":[{"constant":false,"id":80786,"mutability":"mutable","name":"i","nameLocation":"21634:1:160","nodeType":"VariableDeclaration","scope":80842,"src":"21626:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80785,"name":"uint256","nodeType":"ElementaryTypeName","src":"21626:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80788,"initialValue":{"hexValue":"30","id":80787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21638:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21626:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"21658:3:160","subExpression":{"id":80792,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80786,"src":"21658:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80794,"nodeType":"ExpressionStatement","src":"21658:3:160"},"nodeType":"ForStatement","src":"21621:827:160"},{"expression":{"arguments":[{"id":80845,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80775,"src":"22500:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":80846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22522:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":80847,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80769,"src":"22525:18:160","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":80843,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"22465:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":80844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22472:27:160","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"22465:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":80848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22465:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80762,"id":80849,"nodeType":"Return","src":"22458:86:160"}]},"documentation":{"id":80754,"nodeType":"StructuredDocumentation","src":"21021:293:160","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":"21328:13:160","parameters":{"id":80759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80758,"mutability":"mutable","name":"_messages","nameLocation":"21366:9:160","nodeType":"VariableDeclaration","scope":80851,"src":"21342:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86126_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":80756,"nodeType":"UserDefinedTypeName","pathNode":{"id":80755,"name":"Gear.Message","nameLocations":["21342:4:160","21347:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":86126,"src":"21342:12:160"},"referencedDeclaration":86126,"src":"21342:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_storage_ptr","typeString":"struct Gear.Message"}},"id":80757,"nodeType":"ArrayTypeName","src":"21342:14:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86126_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"21341:35:160"},"returnParameters":{"id":80762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80851,"src":"21394:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21394:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21393:9:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80905,"nodeType":"FunctionDefinition","src":"23061:1125:160","nodes":[],"body":{"id":80904,"nodeType":"Block","src":"23132:1054:160","nodes":[],"statements":[{"condition":{"id":80861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23318:37:160","subExpression":{"arguments":[{"id":80859,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"23346:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":80858,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81115,"src":"23319:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$86126_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":80860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23319:36:160","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":80903,"nodeType":"IfStatement","src":"23314:866:160","trueBody":{"id":80902,"nodeType":"Block","src":"23357:823:160","statements":[{"condition":{"expression":{"id":80862,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"23625:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23634:4:160","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":86125,"src":"23625:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80890,"nodeType":"IfStatement","src":"23621:453:160","trueBody":{"id":80889,"nodeType":"Block","src":"23640:434:160","statements":[{"assignments":[80865,null],"declarations":[{"constant":false,"id":80865,"mutability":"mutable","name":"success","nameLocation":"23664:7:160","nodeType":"VariableDeclaration","scope":80889,"src":"23659:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80864,"name":"bool","nodeType":"ElementaryTypeName","src":"23659:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":80874,"initialValue":{"arguments":[{"expression":{"id":80871,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"23716:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23725:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86115,"src":"23716:16:160","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":80866,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"23676:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"23676:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23697:4:160","memberName":"call","nodeType":"MemberAccess","src":"23676:25:160","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":80870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":80869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23707:7:160","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"23676:39:160","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":80873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23676:57:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"23658:75:160"},{"condition":{"id":80876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23756:8:160","subExpression":{"id":80875,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80865,"src":"23757:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80888,"nodeType":"IfStatement","src":"23752:308:160","trueBody":{"id":80887,"nodeType":"Block","src":"23766:294:160","statements":[{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":80878,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"23963:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23972:2:160","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86109,"src":"23963:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80880,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"23976:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23985:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"23976:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80882,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"23998:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24007:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"23998:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80877,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76973,"src":"23945:17:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":80884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23945:68:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80885,"nodeType":"EmitStatement","src":"23940:73:160"},{"functionReturnParameters":80857,"id":80886,"nodeType":"Return","src":"24035:7:160"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":80892,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"24101:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24110:2:160","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86109,"src":"24101:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80894,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"24114:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24123:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"24114:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80896,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"24136:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24145:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86115,"src":"24136:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":80898,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80855,"src":"24154:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24163:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"24154:14:160","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":80891,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76964,"src":"24093:7:160","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":80900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24093:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80901,"nodeType":"EmitStatement","src":"24088:81:160"}]}}]},"documentation":{"id":80852,"nodeType":"StructuredDocumentation","src":"22557:499:160","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":"23070:21:160","parameters":{"id":80856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80855,"mutability":"mutable","name":"_message","nameLocation":"23114:8:160","nodeType":"VariableDeclaration","scope":80905,"src":"23092:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80854,"nodeType":"UserDefinedTypeName","pathNode":{"id":80853,"name":"Gear.Message","nameLocations":["23092:4:160","23097:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":86126,"src":"23092:12:160"},"referencedDeclaration":86126,"src":"23092:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"23091:32:160"},"returnParameters":{"id":80857,"nodeType":"ParameterList","parameters":[],"src":"23132:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81115,"nodeType":"FunctionDefinition","src":"27265:3845:160","nodes":[],"body":{"id":81114,"nodeType":"Block","src":"27369:3741:160","nodes":[],"statements":[{"assignments":[80915],"declarations":[{"constant":false,"id":80915,"mutability":"mutable","name":"payload","nameLocation":"27394:7:160","nodeType":"VariableDeclaration","scope":81114,"src":"27379:22:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80914,"name":"bytes","nodeType":"ElementaryTypeName","src":"27379:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":80918,"initialValue":{"expression":{"id":80916,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80909,"src":"27404:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27413:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86115,"src":"27404:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27379:41:160"},{"condition":{"id":80934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27435:86:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80919,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80909,"src":"27437:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27446:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"27437:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80921,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80103,"src":"27461:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27437:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80923,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80909,"src":"27479:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27488:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"27479:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27497:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27479:19:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27437:61:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80928,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80915,"src":"27502:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27510:6:160","memberName":"length","nodeType":"MemberAccess","src":"27502:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27519:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27502:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27437:83:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80933,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27436:85:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80938,"nodeType":"IfStatement","src":"27431:129:160","trueBody":{"id":80937,"nodeType":"Block","src":"27523:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27544:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80913,"id":80936,"nodeType":"Return","src":"27537:12:160"}]}},{"assignments":[80940],"declarations":[{"constant":false,"id":80940,"mutability":"mutable","name":"topicsLength","nameLocation":"27578:12:160","nodeType":"VariableDeclaration","scope":81114,"src":"27570:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80939,"name":"uint256","nodeType":"ElementaryTypeName","src":"27570:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80941,"nodeType":"VariableDeclarationStatement","src":"27570:20:160"},{"AST":{"nativeSrc":"27625:224:160","nodeType":"YulBlock","src":"27625:224:160","statements":[{"nativeSrc":"27785:54:160","nodeType":"YulAssignment","src":"27785:54:160","value":{"arguments":[{"kind":"number","nativeSrc":"27805:3:160","nodeType":"YulLiteral","src":"27805:3:160","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"27823:14:160","nodeType":"YulIdentifier","src":"27823:14:160"}],"functionName":{"name":"calldataload","nativeSrc":"27810:12:160","nodeType":"YulIdentifier","src":"27810:12:160"},"nativeSrc":"27810:28:160","nodeType":"YulFunctionCall","src":"27810:28:160"}],"functionName":{"name":"shr","nativeSrc":"27801:3:160","nodeType":"YulIdentifier","src":"27801:3:160"},"nativeSrc":"27801:38:160","nodeType":"YulFunctionCall","src":"27801:38:160"},"variableNames":[{"name":"topicsLength","nativeSrc":"27785:12:160","nodeType":"YulIdentifier","src":"27785:12:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80915,"isOffset":true,"isSlot":false,"src":"27823:14:160","suffix":"offset","valueSize":1},{"declaration":80940,"isOffset":false,"isSlot":false,"src":"27785:12:160","valueSize":1}],"flags":["memory-safe"],"id":80942,"nodeType":"InlineAssembly","src":"27600:249:160"},{"condition":{"id":80951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27863:41:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80943,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80940,"src":"27865:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":80944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27881:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27865:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80946,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80940,"src":"27886:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":80947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27902:1:160","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"27886:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27865:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80950,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27864:40:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80955,"nodeType":"IfStatement","src":"27859:84:160","trueBody":{"id":80954,"nodeType":"Block","src":"27906:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27927:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80913,"id":80953,"nodeType":"Return","src":"27920:12:160"}]}},{"assignments":[80957],"declarations":[{"constant":false,"id":80957,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"27961:19:160","nodeType":"VariableDeclaration","scope":81114,"src":"27953:27:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80956,"name":"uint256","nodeType":"ElementaryTypeName","src":"27953:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80958,"nodeType":"VariableDeclarationStatement","src":"27953:27:160"},{"id":80967,"nodeType":"UncheckedBlock","src":"27990:78:160","statements":[{"expression":{"id":80965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80959,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"28014:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":80960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28036:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80961,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80940,"src":"28040:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":80962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28055:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"28040:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28036:21:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28014:43:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80966,"nodeType":"ExpressionStatement","src":"28014:43:160"}]},{"condition":{"id":80973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28082:40:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80968,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80915,"src":"28084:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28092:6:160","memberName":"length","nodeType":"MemberAccess","src":"28084:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":80970,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"28102:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28084:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28083:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80977,"nodeType":"IfStatement","src":"28078:83:160","trueBody":{"id":80976,"nodeType":"Block","src":"28124:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28145:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80913,"id":80975,"nodeType":"Return","src":"28138:12:160"}]}},{"assignments":[80980],"declarations":[{"constant":false,"id":80980,"mutability":"mutable","name":"topic1","nameLocation":"28264:6:160","nodeType":"VariableDeclaration","scope":81114,"src":"28256:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28256:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`","id":80981,"nodeType":"VariableDeclarationStatement","src":"28256:14:160"},{"AST":{"nativeSrc":"28305:70:160","nodeType":"YulBlock","src":"28305:70:160","statements":[{"nativeSrc":"28319:46:160","nodeType":"YulAssignment","src":"28319:46:160","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"28346:14:160","nodeType":"YulIdentifier","src":"28346:14:160"},{"kind":"number","nativeSrc":"28362:1:160","nodeType":"YulLiteral","src":"28362:1:160","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28342:3:160","nodeType":"YulIdentifier","src":"28342:3:160"},"nativeSrc":"28342:22:160","nodeType":"YulFunctionCall","src":"28342:22:160"}],"functionName":{"name":"calldataload","nativeSrc":"28329:12:160","nodeType":"YulIdentifier","src":"28329:12:160"},"nativeSrc":"28329:36:160","nodeType":"YulFunctionCall","src":"28329:36:160"},"variableNames":[{"name":"topic1","nativeSrc":"28319:6:160","nodeType":"YulIdentifier","src":"28319:6:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80915,"isOffset":true,"isSlot":false,"src":"28346:14:160","suffix":"offset","valueSize":1},{"declaration":80980,"isOffset":false,"isSlot":false,"src":"28319:6:160","valueSize":1}],"flags":["memory-safe"],"id":80982,"nodeType":"InlineAssembly","src":"28280:95:160"},{"condition":{"id":81053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28931:763:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80983,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"28946:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80984,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76912,"src":"28956:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28969:8:160","memberName":"selector","nodeType":"MemberAccess","src":"28956:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28946:31:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80987,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"28993:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80988,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76925,"src":"29003:24:160","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":80989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29028:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29003:33:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28993:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:90:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80992,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29052:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80993,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76936,"src":"29062:22:160","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":80994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29085:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29062:31:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29052:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:147:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80997,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29109:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80998,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76943,"src":"29119:22:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":80999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29142:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29119:31:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29109:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:204:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81002,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29166:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81003,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"29176:26:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29203:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29176:35:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29166:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:265:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81007,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29227:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81008,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"29237:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29269:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29237:40:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29227:50:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:331:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81012,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29293:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81013,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76964,"src":"29303:7:160","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":81014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29311:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29303:16:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29293:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:373:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81017,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29335:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81018,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76973,"src":"29345:17:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":81019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29363:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29345:26:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29335:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:425:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81022,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29387:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81023,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76984,"src":"29397:5:160","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":81024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29403:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29397:14:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29387:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:465:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81027,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29427:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81028,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76993,"src":"29437:15:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":81029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29453:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29437:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29427:34:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:515:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81032,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29477:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81033,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77000,"src":"29487:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29500:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29487:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29477:31:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:562:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81037,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29524:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81038,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77007,"src":"29534:36:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29571:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29534:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29524:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:633:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81042,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29595:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81043,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77014,"src":"29605:19:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29625:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29605:28:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29595:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:687:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81047,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80980,"src":"29649:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81048,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77021,"src":"29659:16:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29676:8:160","memberName":"selector","nodeType":"MemberAccess","src":"29659:25:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29649:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28946:738:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81052,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28932:762:160","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":81057,"nodeType":"IfStatement","src":"28927:806:160","trueBody":{"id":81056,"nodeType":"Block","src":"29696:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":81054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29717:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80913,"id":81055,"nodeType":"Return","src":"29710:12:160"}]}},{"assignments":[81059],"declarations":[{"constant":false,"id":81059,"mutability":"mutable","name":"size","nameLocation":"29784:4:160","nodeType":"VariableDeclaration","scope":81114,"src":"29776:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81058,"name":"uint256","nodeType":"ElementaryTypeName","src":"29776:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81060,"nodeType":"VariableDeclarationStatement","src":"29776:12:160"},{"id":81068,"nodeType":"UncheckedBlock","src":"29798:78:160","statements":[{"expression":{"id":81066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81061,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81059,"src":"29822:4:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81062,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80915,"src":"29829:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29837:6:160","memberName":"length","nodeType":"MemberAccess","src":"29829:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":81064,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"29846:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29829:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29822:43:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81067,"nodeType":"ExpressionStatement","src":"29822:43:160"}]},{"assignments":[81070],"declarations":[{"constant":false,"id":81070,"mutability":"mutable","name":"memPtr","nameLocation":"29894:6:160","nodeType":"VariableDeclaration","scope":81114,"src":"29886:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81069,"name":"uint256","nodeType":"ElementaryTypeName","src":"29886:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81075,"initialValue":{"arguments":[{"id":81073,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81059,"src":"29919:4:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81071,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"29903:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29910:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"29903:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29903:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29886:38:160"},{"AST":{"nativeSrc":"29959:92:160","nodeType":"YulBlock","src":"29959:92:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"29986:6:160","nodeType":"YulIdentifier","src":"29986:6:160"},{"arguments":[{"name":"payload.offset","nativeSrc":"29998:14:160","nodeType":"YulIdentifier","src":"29998:14:160"},{"name":"topicsLengthInBytes","nativeSrc":"30014:19:160","nodeType":"YulIdentifier","src":"30014:19:160"}],"functionName":{"name":"add","nativeSrc":"29994:3:160","nodeType":"YulIdentifier","src":"29994:3:160"},"nativeSrc":"29994:40:160","nodeType":"YulFunctionCall","src":"29994:40:160"},{"name":"size","nativeSrc":"30036:4:160","nodeType":"YulIdentifier","src":"30036:4:160"}],"functionName":{"name":"calldatacopy","nativeSrc":"29973:12:160","nodeType":"YulIdentifier","src":"29973:12:160"},"nativeSrc":"29973:68:160","nodeType":"YulFunctionCall","src":"29973:68:160"},"nativeSrc":"29973:68:160","nodeType":"YulExpressionStatement","src":"29973:68:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81070,"isOffset":false,"isSlot":false,"src":"29986:6:160","valueSize":1},{"declaration":80915,"isOffset":true,"isSlot":false,"src":"29998:14:160","suffix":"offset","valueSize":1},{"declaration":81059,"isOffset":false,"isSlot":false,"src":"30036:4:160","valueSize":1},{"declaration":80957,"isOffset":false,"isSlot":false,"src":"30014:19:160","valueSize":1}],"flags":["memory-safe"],"id":81076,"nodeType":"InlineAssembly","src":"29934:117:160"},{"assignments":[81079],"declarations":[{"constant":false,"id":81079,"mutability":"mutable","name":"topic2","nameLocation":"30206:6:160","nodeType":"VariableDeclaration","scope":81114,"src":"30198:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30198:7:160","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":81080,"nodeType":"VariableDeclarationStatement","src":"30198:14:160"},{"assignments":[81082],"declarations":[{"constant":false,"id":81082,"mutability":"mutable","name":"topic3","nameLocation":"30230:6:160","nodeType":"VariableDeclaration","scope":81114,"src":"30222:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30222:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81083,"nodeType":"VariableDeclarationStatement","src":"30222:14:160"},{"assignments":[81085],"declarations":[{"constant":false,"id":81085,"mutability":"mutable","name":"topic4","nameLocation":"30254:6:160","nodeType":"VariableDeclaration","scope":81114,"src":"30246:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81084,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30246:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81086,"nodeType":"VariableDeclarationStatement","src":"30246:14:160"},{"AST":{"nativeSrc":"30295:191:160","nodeType":"YulBlock","src":"30295:191:160","statements":[{"nativeSrc":"30309:47:160","nodeType":"YulAssignment","src":"30309:47:160","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30336:14:160","nodeType":"YulIdentifier","src":"30336:14:160"},{"kind":"number","nativeSrc":"30352:2:160","nodeType":"YulLiteral","src":"30352:2:160","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"30332:3:160","nodeType":"YulIdentifier","src":"30332:3:160"},"nativeSrc":"30332:23:160","nodeType":"YulFunctionCall","src":"30332:23:160"}],"functionName":{"name":"calldataload","nativeSrc":"30319:12:160","nodeType":"YulIdentifier","src":"30319:12:160"},"nativeSrc":"30319:37:160","nodeType":"YulFunctionCall","src":"30319:37:160"},"variableNames":[{"name":"topic2","nativeSrc":"30309:6:160","nodeType":"YulIdentifier","src":"30309:6:160"}]},{"nativeSrc":"30369:47:160","nodeType":"YulAssignment","src":"30369:47:160","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30396:14:160","nodeType":"YulIdentifier","src":"30396:14:160"},{"kind":"number","nativeSrc":"30412:2:160","nodeType":"YulLiteral","src":"30412:2:160","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"30392:3:160","nodeType":"YulIdentifier","src":"30392:3:160"},"nativeSrc":"30392:23:160","nodeType":"YulFunctionCall","src":"30392:23:160"}],"functionName":{"name":"calldataload","nativeSrc":"30379:12:160","nodeType":"YulIdentifier","src":"30379:12:160"},"nativeSrc":"30379:37:160","nodeType":"YulFunctionCall","src":"30379:37:160"},"variableNames":[{"name":"topic3","nativeSrc":"30369:6:160","nodeType":"YulIdentifier","src":"30369:6:160"}]},{"nativeSrc":"30429:47:160","nodeType":"YulAssignment","src":"30429:47:160","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30456:14:160","nodeType":"YulIdentifier","src":"30456:14:160"},{"kind":"number","nativeSrc":"30472:2:160","nodeType":"YulLiteral","src":"30472:2:160","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"30452:3:160","nodeType":"YulIdentifier","src":"30452:3:160"},"nativeSrc":"30452:23:160","nodeType":"YulFunctionCall","src":"30452:23:160"}],"functionName":{"name":"calldataload","nativeSrc":"30439:12:160","nodeType":"YulIdentifier","src":"30439:12:160"},"nativeSrc":"30439:37:160","nodeType":"YulFunctionCall","src":"30439:37:160"},"variableNames":[{"name":"topic4","nativeSrc":"30429:6:160","nodeType":"YulIdentifier","src":"30429:6:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80915,"isOffset":true,"isSlot":false,"src":"30336:14:160","suffix":"offset","valueSize":1},{"declaration":80915,"isOffset":true,"isSlot":false,"src":"30396:14:160","suffix":"offset","valueSize":1},{"declaration":80915,"isOffset":true,"isSlot":false,"src":"30456:14:160","suffix":"offset","valueSize":1},{"declaration":81079,"isOffset":false,"isSlot":false,"src":"30309:6:160","valueSize":1},{"declaration":81082,"isOffset":false,"isSlot":false,"src":"30369:6:160","valueSize":1},{"declaration":81085,"isOffset":false,"isSlot":false,"src":"30429:6:160","valueSize":1}],"flags":["memory-safe"],"id":81087,"nodeType":"InlineAssembly","src":"30270:216:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81088,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80940,"src":"30500:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":81089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30516:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30500:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81093,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80940,"src":"30636:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":81094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30652:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"30636:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81098,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80940,"src":"30780:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":81099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30796:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"30780:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81103,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80940,"src":"30932:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":81104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30948:1:160","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"30932:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81108,"nodeType":"IfStatement","src":"30928:154:160","trueBody":{"id":81107,"nodeType":"Block","src":"30951:131:160","statements":[{"AST":{"nativeSrc":"30990:82:160","nodeType":"YulBlock","src":"30990:82:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"31013:6:160","nodeType":"YulIdentifier","src":"31013:6:160"},{"name":"size","nativeSrc":"31021:4:160","nodeType":"YulIdentifier","src":"31021:4:160"},{"name":"topic1","nativeSrc":"31027:6:160","nodeType":"YulIdentifier","src":"31027:6:160"},{"name":"topic2","nativeSrc":"31035:6:160","nodeType":"YulIdentifier","src":"31035:6:160"},{"name":"topic3","nativeSrc":"31043:6:160","nodeType":"YulIdentifier","src":"31043:6:160"},{"name":"topic4","nativeSrc":"31051:6:160","nodeType":"YulIdentifier","src":"31051:6:160"}],"functionName":{"name":"log4","nativeSrc":"31008:4:160","nodeType":"YulIdentifier","src":"31008:4:160"},"nativeSrc":"31008:50:160","nodeType":"YulFunctionCall","src":"31008:50:160"},"nativeSrc":"31008:50:160","nodeType":"YulExpressionStatement","src":"31008:50:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81070,"isOffset":false,"isSlot":false,"src":"31013:6:160","valueSize":1},{"declaration":81059,"isOffset":false,"isSlot":false,"src":"31021:4:160","valueSize":1},{"declaration":80980,"isOffset":false,"isSlot":false,"src":"31027:6:160","valueSize":1},{"declaration":81079,"isOffset":false,"isSlot":false,"src":"31035:6:160","valueSize":1},{"declaration":81082,"isOffset":false,"isSlot":false,"src":"31043:6:160","valueSize":1},{"declaration":81085,"isOffset":false,"isSlot":false,"src":"31051:6:160","valueSize":1}],"flags":["memory-safe"],"id":81106,"nodeType":"InlineAssembly","src":"30965:107:160"}]}},"id":81109,"nodeType":"IfStatement","src":"30776:306:160","trueBody":{"id":81102,"nodeType":"Block","src":"30799:123:160","statements":[{"AST":{"nativeSrc":"30838:74:160","nodeType":"YulBlock","src":"30838:74:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30861:6:160","nodeType":"YulIdentifier","src":"30861:6:160"},{"name":"size","nativeSrc":"30869:4:160","nodeType":"YulIdentifier","src":"30869:4:160"},{"name":"topic1","nativeSrc":"30875:6:160","nodeType":"YulIdentifier","src":"30875:6:160"},{"name":"topic2","nativeSrc":"30883:6:160","nodeType":"YulIdentifier","src":"30883:6:160"},{"name":"topic3","nativeSrc":"30891:6:160","nodeType":"YulIdentifier","src":"30891:6:160"}],"functionName":{"name":"log3","nativeSrc":"30856:4:160","nodeType":"YulIdentifier","src":"30856:4:160"},"nativeSrc":"30856:42:160","nodeType":"YulFunctionCall","src":"30856:42:160"},"nativeSrc":"30856:42:160","nodeType":"YulExpressionStatement","src":"30856:42:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81070,"isOffset":false,"isSlot":false,"src":"30861:6:160","valueSize":1},{"declaration":81059,"isOffset":false,"isSlot":false,"src":"30869:4:160","valueSize":1},{"declaration":80980,"isOffset":false,"isSlot":false,"src":"30875:6:160","valueSize":1},{"declaration":81079,"isOffset":false,"isSlot":false,"src":"30883:6:160","valueSize":1},{"declaration":81082,"isOffset":false,"isSlot":false,"src":"30891:6:160","valueSize":1}],"flags":["memory-safe"],"id":81101,"nodeType":"InlineAssembly","src":"30813:99:160"}]}},"id":81110,"nodeType":"IfStatement","src":"30632:450:160","trueBody":{"id":81097,"nodeType":"Block","src":"30655:115:160","statements":[{"AST":{"nativeSrc":"30694:66:160","nodeType":"YulBlock","src":"30694:66:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30717:6:160","nodeType":"YulIdentifier","src":"30717:6:160"},{"name":"size","nativeSrc":"30725:4:160","nodeType":"YulIdentifier","src":"30725:4:160"},{"name":"topic1","nativeSrc":"30731:6:160","nodeType":"YulIdentifier","src":"30731:6:160"},{"name":"topic2","nativeSrc":"30739:6:160","nodeType":"YulIdentifier","src":"30739:6:160"}],"functionName":{"name":"log2","nativeSrc":"30712:4:160","nodeType":"YulIdentifier","src":"30712:4:160"},"nativeSrc":"30712:34:160","nodeType":"YulFunctionCall","src":"30712:34:160"},"nativeSrc":"30712:34:160","nodeType":"YulExpressionStatement","src":"30712:34:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81070,"isOffset":false,"isSlot":false,"src":"30717:6:160","valueSize":1},{"declaration":81059,"isOffset":false,"isSlot":false,"src":"30725:4:160","valueSize":1},{"declaration":80980,"isOffset":false,"isSlot":false,"src":"30731:6:160","valueSize":1},{"declaration":81079,"isOffset":false,"isSlot":false,"src":"30739:6:160","valueSize":1}],"flags":["memory-safe"],"id":81096,"nodeType":"InlineAssembly","src":"30669:91:160"}]}},"id":81111,"nodeType":"IfStatement","src":"30496:586:160","trueBody":{"id":81092,"nodeType":"Block","src":"30519:107:160","statements":[{"AST":{"nativeSrc":"30558:58:160","nodeType":"YulBlock","src":"30558:58:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30581:6:160","nodeType":"YulIdentifier","src":"30581:6:160"},{"name":"size","nativeSrc":"30589:4:160","nodeType":"YulIdentifier","src":"30589:4:160"},{"name":"topic1","nativeSrc":"30595:6:160","nodeType":"YulIdentifier","src":"30595:6:160"}],"functionName":{"name":"log1","nativeSrc":"30576:4:160","nodeType":"YulIdentifier","src":"30576:4:160"},"nativeSrc":"30576:26:160","nodeType":"YulFunctionCall","src":"30576:26:160"},"nativeSrc":"30576:26:160","nodeType":"YulExpressionStatement","src":"30576:26:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81070,"isOffset":false,"isSlot":false,"src":"30581:6:160","valueSize":1},{"declaration":81059,"isOffset":false,"isSlot":false,"src":"30589:4:160","valueSize":1},{"declaration":80980,"isOffset":false,"isSlot":false,"src":"30595:6:160","valueSize":1}],"flags":["memory-safe"],"id":81091,"nodeType":"InlineAssembly","src":"30533:83:160"}]}},{"expression":{"hexValue":"74727565","id":81112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31099:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80913,"id":81113,"nodeType":"Return","src":"31092:11:160"}]},"documentation":{"id":80906,"nodeType":"StructuredDocumentation","src":"24192:3068:160","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":"27274:26:160","parameters":{"id":80910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80909,"mutability":"mutable","name":"_message","nameLocation":"27323:8:160","nodeType":"VariableDeclaration","scope":81115,"src":"27301:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80908,"nodeType":"UserDefinedTypeName","pathNode":{"id":80907,"name":"Gear.Message","nameLocations":["27301:4:160","27306:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":86126,"src":"27301:12:160"},"referencedDeclaration":86126,"src":"27301:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"27300:32:160"},"returnParameters":{"id":80913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80912,"mutability":"mutable","name":"isSailsEvent","nameLocation":"27355:12:160","nodeType":"VariableDeclaration","scope":81115,"src":"27350:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80911,"name":"bool","nodeType":"ElementaryTypeName","src":"27350:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27349:19:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81246,"nodeType":"FunctionDefinition","src":"37077:1645:160","nodes":[],"body":{"id":81245,"nodeType":"Block","src":"37144:1578:160","nodes":[],"statements":[{"condition":{"expression":{"id":81122,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37158:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37167:4:160","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":86125,"src":"37158:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81243,"nodeType":"Block","src":"38373:343:160","statements":[{"assignments":[81211],"declarations":[{"constant":false,"id":81211,"mutability":"mutable","name":"transferSuccess","nameLocation":"38392:15:160","nodeType":"VariableDeclaration","scope":81243,"src":"38387:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81210,"name":"bool","nodeType":"ElementaryTypeName","src":"38387:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81218,"initialValue":{"arguments":[{"expression":{"id":81213,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38425:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38434:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"38425:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81215,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38447:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38456:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"38447:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81212,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"38410:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":81217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38410:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"38387:75:160"},{"condition":{"id":81220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38480:16:160","subExpression":{"id":81219,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38481:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81229,"nodeType":"IfStatement","src":"38476:117:160","trueBody":{"id":81228,"nodeType":"Block","src":"38498:95:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":81222,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38541:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38550:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"38541:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81224,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38563:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38572:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"38563:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81221,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77014,"src":"38521:19:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38521:57:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81227,"nodeType":"EmitStatement","src":"38516:62:160"}]}},{"eventCall":{"arguments":[{"expression":{"id":81231,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38618:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38627:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86115,"src":"38618:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":81233,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38636:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38645:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"38636:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":81235,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38652:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38661:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86122,"src":"38652:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38674:2:160","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":86161,"src":"38652:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":81238,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38678:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38687:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86122,"src":"38678:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38700:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86164,"src":"38678:26:160","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":81230,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76984,"src":"38612:5:160","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":81241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38612:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81242,"nodeType":"EmitStatement","src":"38607:98:160"}]},"id":81244,"nodeType":"IfStatement","src":"37154:1562:160","trueBody":{"id":81209,"nodeType":"Block","src":"37173:1194:160","statements":[{"assignments":[81125],"declarations":[{"constant":false,"id":81125,"mutability":"mutable","name":"isSuccessReply","nameLocation":"37192:14:160","nodeType":"VariableDeclaration","scope":81209,"src":"37187:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81124,"name":"bool","nodeType":"ElementaryTypeName","src":"37187:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81133,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":81132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81126,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37209:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37218:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86122,"src":"37209:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37231:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86164,"src":"37209:26:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":81130,"indexExpression":{"hexValue":"30","id":81129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37236:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37209:29:160","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37242:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37209:34:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37187:56:160"},{"assignments":[81135],"declarations":[{"constant":false,"id":81135,"mutability":"mutable","name":"payload","nameLocation":"37271:7:160","nodeType":"VariableDeclaration","scope":81209,"src":"37258:20:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":81134,"name":"bytes","nodeType":"ElementaryTypeName","src":"37258:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":81136,"nodeType":"VariableDeclarationStatement","src":"37258:20:160"},{"condition":{"id":81137,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81125,"src":"37297:14:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81160,"nodeType":"Block","src":"37378:348:160","statements":[{"expression":{"id":81158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81144,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81135,"src":"37548:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":81147,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"37602:10:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$76513_$","typeString":"type(contract ICallbacks)"}},"id":81148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37613:12:160","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":76512,"src":"37602:23:160","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":81149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37626:8:160","memberName":"selector","nodeType":"MemberAccess","src":"37602:32:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":81150,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37636:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37645:2:160","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86109,"src":"37636:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81152,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37649:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37658:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86115,"src":"37649:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":81154,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37667:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37676:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86122,"src":"37667:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37689:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86164,"src":"37667:26:160","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":81145,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37558:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":81146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37562:18:160","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"37558:22:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":81157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37558:153:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"37548:163:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":81159,"nodeType":"ExpressionStatement","src":"37548:163:160"}]},"id":81161,"nodeType":"IfStatement","src":"37293:433:160","trueBody":{"id":81143,"nodeType":"Block","src":"37313:59:160","statements":[{"expression":{"id":81141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81138,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81135,"src":"37331:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81139,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37341:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37350:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86115,"src":"37341:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"37331:26:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":81142,"nodeType":"ExpressionStatement","src":"37331:26:160"}]}},{"assignments":[81163,null],"declarations":[{"constant":false,"id":81163,"mutability":"mutable","name":"success","nameLocation":"37746:7:160","nodeType":"VariableDeclaration","scope":81209,"src":"37741:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81162,"name":"bool","nodeType":"ElementaryTypeName","src":"37741:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":81173,"initialValue":{"arguments":[{"id":81171,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81135,"src":"37821:7:160","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":81164,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37758:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37767:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"37758:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37779:4:160","memberName":"call","nodeType":"MemberAccess","src":"37758:25:160","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":81170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":81167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37789:7:160","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":81168,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37805:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37814:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"37805:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"37758:62:160","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":81172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37758:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"37740:89:160"},{"condition":{"id":81175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37848:8:160","subExpression":{"id":81174,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81163,"src":"37849:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81208,"nodeType":"IfStatement","src":"37844:513:160","trueBody":{"id":81207,"nodeType":"Block","src":"37858:499:160","statements":[{"assignments":[81177],"declarations":[{"constant":false,"id":81177,"mutability":"mutable","name":"transferSuccess","nameLocation":"37881:15:160","nodeType":"VariableDeclaration","scope":81207,"src":"37876:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81176,"name":"bool","nodeType":"ElementaryTypeName","src":"37876:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81184,"initialValue":{"arguments":[{"expression":{"id":81179,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37914:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37923:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"37914:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81181,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"37936:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37945:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"37936:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81178,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"37899:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":81183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37899:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37876:75:160"},{"condition":{"id":81186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37973:16:160","subExpression":{"id":81185,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81177,"src":"37974:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81195,"nodeType":"IfStatement","src":"37969:125:160","trueBody":{"id":81194,"nodeType":"Block","src":"37991:103:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":81188,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38038:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38047:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86112,"src":"38038:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81190,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38060:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38069:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"38060:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81187,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77014,"src":"38018:19:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38018:57:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81193,"nodeType":"EmitStatement","src":"38013:62:160"}]}},{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":81197,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38273:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38282:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86118,"src":"38273:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":81199,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38289:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38298:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86122,"src":"38289:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38311:2:160","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":86161,"src":"38289:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":81202,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"38315:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38324:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86122,"src":"38315:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86165_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38337:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86164,"src":"38315:26:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":81196,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76993,"src":"38257:15:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":81205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38257:85:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81206,"nodeType":"EmitStatement","src":"38252:90:160"}]}}]}}]},"documentation":{"id":81116,"nodeType":"StructuredDocumentation","src":"31116:5956:160","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":"37086:17:160","parameters":{"id":81120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81119,"mutability":"mutable","name":"_message","nameLocation":"37126:8:160","nodeType":"VariableDeclaration","scope":81246,"src":"37104:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":81118,"nodeType":"UserDefinedTypeName","pathNode":{"id":81117,"name":"Gear.Message","nameLocations":["37104:4:160","37109:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":86126,"src":"37104:12:160"},"referencedDeclaration":86126,"src":"37104:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86126_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"37103:32:160"},"returnParameters":{"id":81121,"nodeType":"ParameterList","parameters":[],"src":"37144:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81359,"nodeType":"FunctionDefinition","src":"39260:1028:160","nodes":[],"body":{"id":81358,"nodeType":"Block","src":"39355:933:160","nodes":[],"statements":[{"assignments":[81257],"declarations":[{"constant":false,"id":81257,"mutability":"mutable","name":"claimsLen","nameLocation":"39373:9:160","nodeType":"VariableDeclaration","scope":81358,"src":"39365:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81256,"name":"uint256","nodeType":"ElementaryTypeName","src":"39365:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81260,"initialValue":{"expression":{"id":81258,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81251,"src":"39385:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86235_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":81259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39393:6:160","memberName":"length","nodeType":"MemberAccess","src":"39385:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39365:34:160"},{"assignments":[81262],"declarations":[{"constant":false,"id":81262,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"39417:16:160","nodeType":"VariableDeclaration","scope":81358,"src":"39409:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81261,"name":"uint256","nodeType":"ElementaryTypeName","src":"39409:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81266,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81263,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81257,"src":"39436:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39448:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39436:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39409:41:160"},{"assignments":[81268],"declarations":[{"constant":false,"id":81268,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"39468:18:160","nodeType":"VariableDeclaration","scope":81358,"src":"39460:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81267,"name":"uint256","nodeType":"ElementaryTypeName","src":"39460:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81273,"initialValue":{"arguments":[{"id":81271,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81262,"src":"39505:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81269,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"39489:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39496:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"39489:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39489:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39460:62:160"},{"assignments":[81275],"declarations":[{"constant":false,"id":81275,"mutability":"mutable","name":"offset","nameLocation":"39540:6:160","nodeType":"VariableDeclaration","scope":81358,"src":"39532:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81274,"name":"uint256","nodeType":"ElementaryTypeName","src":"39532:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81277,"initialValue":{"hexValue":"30","id":81276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39549:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39532:18:160"},{"body":{"id":81349,"nodeType":"Block","src":"39601:588:160","statements":[{"assignments":[81292],"declarations":[{"constant":false,"id":81292,"mutability":"mutable","name":"claim","nameLocation":"39640:5:160","nodeType":"VariableDeclaration","scope":81349,"src":"39615:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":81291,"nodeType":"UserDefinedTypeName","pathNode":{"id":81290,"name":"Gear.ValueClaim","nameLocations":["39615:4:160","39620:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":86235,"src":"39615:15:160"},"referencedDeclaration":86235,"src":"39615:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":81296,"initialValue":{"baseExpression":{"id":81293,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81251,"src":"39648:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86235_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":81295,"indexExpression":{"id":81294,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81279,"src":"39656:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39648:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"39615:43:160"},{"assignments":[81298],"declarations":[{"constant":false,"id":81298,"mutability":"mutable","name":"claimHash","nameLocation":"39680:9:160","nodeType":"VariableDeclaration","scope":81349,"src":"39672:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39672:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81308,"initialValue":{"arguments":[{"expression":{"id":81301,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"39712:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39718:9:160","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":86230,"src":"39712:15:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81303,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"39729:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39735:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86232,"src":"39729:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81305,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"39748:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39754:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86234,"src":"39748:11:160","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":81299,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"39692:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":81300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39697:14:160","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":86446,"src":"39692:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":81307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39692:68:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39672:88:160"},{"expression":{"arguments":[{"id":81312,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81268,"src":"39800:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81313,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81275,"src":"39820:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81314,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81298,"src":"39828:9:160","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":81309,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"39774:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39781:18:160","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"39774:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39774:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81316,"nodeType":"ExpressionStatement","src":"39774:64:160"},{"id":81321,"nodeType":"UncheckedBlock","src":"39852:55:160","statements":[{"expression":{"id":81319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81317,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81275,"src":"39880:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39890:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39880:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81320,"nodeType":"ExpressionStatement","src":"39880:12:160"}]},{"assignments":[81323],"declarations":[{"constant":false,"id":81323,"mutability":"mutable","name":"success","nameLocation":"39926:7:160","nodeType":"VariableDeclaration","scope":81349,"src":"39921:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81322,"name":"bool","nodeType":"ElementaryTypeName","src":"39921:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81330,"initialValue":{"arguments":[{"expression":{"id":81325,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"39951:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39957:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86232,"src":"39951:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81327,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"39970:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39976:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86234,"src":"39970:11:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81324,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"39936:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":81329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39936:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"39921:61:160"},{"condition":{"id":81331,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81323,"src":"40000:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81347,"nodeType":"Block","src":"40095:84:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":81341,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"40135:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40141:9:160","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":86230,"src":"40135:15:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81343,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"40152:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40158:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86234,"src":"40152:11:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81340,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77021,"src":"40118:16:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40118:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81346,"nodeType":"EmitStatement","src":"40113:51:160"}]},"id":81348,"nodeType":"IfStatement","src":"39996:183:160","trueBody":{"id":81339,"nodeType":"Block","src":"40009:80:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":81333,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"40045:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40051:9:160","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":86230,"src":"40045:15:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81335,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"40062:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40068:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86234,"src":"40062:11:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81332,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77000,"src":"40032:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40032:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81338,"nodeType":"EmitStatement","src":"40027:47:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81282,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81279,"src":"39581:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81283,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81257,"src":"39585:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39581:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81350,"initializationExpression":{"assignments":[81279],"declarations":[{"constant":false,"id":81279,"mutability":"mutable","name":"i","nameLocation":"39574:1:160","nodeType":"VariableDeclaration","scope":81350,"src":"39566:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81278,"name":"uint256","nodeType":"ElementaryTypeName","src":"39566:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81281,"initialValue":{"hexValue":"30","id":81280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39578:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39566:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39596:3:160","subExpression":{"id":81285,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81279,"src":"39596:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81287,"nodeType":"ExpressionStatement","src":"39596:3:160"},"nodeType":"ForStatement","src":"39561:628:160"},{"expression":{"arguments":[{"id":81353,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81268,"src":"40241:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40261:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81355,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81262,"src":"40264:16:160","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":81351,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"40206:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":81352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40213:27:160","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"40206:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40206:75:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81255,"id":81357,"nodeType":"Return","src":"40199:82:160"}]},"documentation":{"id":81247,"nodeType":"StructuredDocumentation","src":"38827:428:160","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":"39269:12:160","parameters":{"id":81252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81251,"mutability":"mutable","name":"_claims","nameLocation":"39309:7:160","nodeType":"VariableDeclaration","scope":81359,"src":"39282:34:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86235_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":81249,"nodeType":"UserDefinedTypeName","pathNode":{"id":81248,"name":"Gear.ValueClaim","nameLocations":["39282:4:160","39287:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":86235,"src":"39282:15:160"},"referencedDeclaration":86235,"src":"39282:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86235_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":81250,"nodeType":"ArrayTypeName","src":"39282:17:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86235_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"39281:36:160"},"returnParameters":{"id":81255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81254,"mutability":"mutable","name":"claimsHash","nameLocation":"39343:10:160","nodeType":"VariableDeclaration","scope":81359,"src":"39335:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39335:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39334:20:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81392,"nodeType":"FunctionDefinition","src":"40554:586:160","nodes":[],"body":{"id":81391,"nodeType":"Block","src":"40618:522:160","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":81369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81367,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80115,"src":"40683:6:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":81368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"40692:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"40683:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81370,"nodeType":"ExpressionStatement","src":"40683:13:160"},{"expression":{"id":81373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81371,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80118,"src":"40706:9:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81372,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81362,"src":"40718:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"40706:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81374,"nodeType":"ExpressionStatement","src":"40706:22:160"},{"assignments":[81376,81378],"declarations":[{"constant":false,"id":81376,"mutability":"mutable","name":"value","nameLocation":"40837:5:160","nodeType":"VariableDeclaration","scope":81391,"src":"40829:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81375,"name":"uint128","nodeType":"ElementaryTypeName","src":"40829:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81378,"mutability":"mutable","name":"success","nameLocation":"40849:7:160","nodeType":"VariableDeclaration","scope":81391,"src":"40844:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81377,"name":"bool","nodeType":"ElementaryTypeName","src":"40844:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":" @dev Transfer all available balance to the inheritor.","id":81381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81379,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80753,"src":"40860:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":81380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40860:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"40828:65:160"},{"condition":{"id":81383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"40907:8:160","subExpression":{"id":81382,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"40908:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81390,"nodeType":"IfStatement","src":"40903:231:160","trueBody":{"id":81389,"nodeType":"Block","src":"40917:217:160","statements":[{"documentation":" @dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":81385,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81362,"src":"41105:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81386,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"41117:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81384,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77007,"src":"41068:36:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41068:55:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81388,"nodeType":"EmitStatement","src":"41063:60:160"}]}}]},"documentation":{"id":81360,"nodeType":"StructuredDocumentation","src":"40351:198:160","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":81365,"kind":"modifierInvocation","modifierName":{"id":81364,"name":"onlyIfActive","nameLocations":["40605:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80190,"src":"40605:12:160"},"nodeType":"ModifierInvocation","src":"40605:12:160"}],"name":"_setInheritor","nameLocation":"40563:13:160","parameters":{"id":81363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81362,"mutability":"mutable","name":"_inheritor","nameLocation":"40585:10:160","nodeType":"VariableDeclaration","scope":81392,"src":"40577:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81361,"name":"address","nodeType":"ElementaryTypeName","src":"40577:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40576:20:160"},"returnParameters":{"id":81366,"nodeType":"ParameterList","parameters":[],"src":"40618:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81407,"nodeType":"FunctionDefinition","src":"41243:281:160","nodes":[],"body":{"id":81406,"nodeType":"Block","src":"41297:227:160","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":81400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81398,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"41363:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81399,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81395,"src":"41375:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41363:22:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81401,"nodeType":"ExpressionStatement","src":"41363:22:160"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":81403,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"41507:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81402,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76912,"src":"41494:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41494:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81405,"nodeType":"EmitStatement","src":"41489:28:160"}]},"documentation":{"id":81393,"nodeType":"StructuredDocumentation","src":"41146:92:160","text":" @dev Updates the state hash.\n @param _stateHash The new state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"41252:16:160","parameters":{"id":81396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81395,"mutability":"mutable","name":"_stateHash","nameLocation":"41277:10:160","nodeType":"VariableDeclaration","scope":81407,"src":"41269:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41269:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41268:20:160"},"returnParameters":{"id":81397,"nodeType":"ParameterList","parameters":[],"src":"41297:0:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81429,"nodeType":"FunctionDefinition","src":"41698:182:160","nodes":[],"body":{"id":81428,"nodeType":"Block","src":"41770:110:160","nodes":[],"statements":[{"assignments":[81417],"declarations":[{"constant":false,"id":81417,"mutability":"mutable","name":"wvaraAddr","nameLocation":"41788:9:160","nodeType":"VariableDeclaration","scope":81428,"src":"41780:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81416,"name":"address","nodeType":"ElementaryTypeName","src":"41780:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":81419,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81410,"src":"41808:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81418,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77791,"src":"41800:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$77791_$","typeString":"type(contract IRouter)"}},"id":81420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41800:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77791","typeString":"contract IRouter"}},"id":81421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41820:11:160","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":77463,"src":"41800:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":81422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41800:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"41780:53:160"},{"expression":{"arguments":[{"id":81425,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81417,"src":"41863:9:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81424,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"41850:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77807_$","typeString":"type(contract IWrappedVara)"}},"id":81426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41850:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"functionReturnParameters":81415,"id":81427,"nodeType":"Return","src":"41843:30:160"}]},"documentation":{"id":81408,"nodeType":"StructuredDocumentation","src":"41566:127:160","text":" @dev Get the `WrappedVara` contract instance.\n @param routerAddr The address of the `Router` contract."},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"41707:6:160","parameters":{"id":81411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81410,"mutability":"mutable","name":"routerAddr","nameLocation":"41722:10:160","nodeType":"VariableDeclaration","scope":81429,"src":"41714:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81409,"name":"address","nodeType":"ElementaryTypeName","src":"41714:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41713:20:160"},"returnParameters":{"id":81415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81429,"src":"41756:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"},"typeName":{"id":81413,"nodeType":"UserDefinedTypeName","pathNode":{"id":81412,"name":"IWrappedVara","nameLocations":["41756:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":77807,"src":"41756:12:160"},"referencedDeclaration":77807,"src":"41756:12:160","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"41755:14:160"},"scope":81521,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":81459,"nodeType":"FunctionDefinition","src":"42122:253:160","nodes":[],"body":{"id":81458,"nodeType":"Block","src":"42205:170:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":81441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81439,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81434,"src":"42219:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":81440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42228:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42219:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81455,"nodeType":"IfStatement","src":"42215:133:160","trueBody":{"id":81454,"nodeType":"Block","src":"42231:117:160","statements":[{"assignments":[81443,null],"declarations":[{"constant":false,"id":81443,"mutability":"mutable","name":"success","nameLocation":"42251:7:160","nodeType":"VariableDeclaration","scope":81454,"src":"42246:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81442,"name":"bool","nodeType":"ElementaryTypeName","src":"42246:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":81451,"initialValue":{"arguments":[{"hexValue":"","id":81449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42306:2:160","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":81444,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81432,"src":"42263:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42275:4:160","memberName":"call","nodeType":"MemberAccess","src":"42263:16:160","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":81448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":81446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42285:5:160","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":81447,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81434,"src":"42299:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"42263:42:160","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":81450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42263:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"42245:64:160"},{"expression":{"id":81452,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81443,"src":"42330:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":81438,"id":81453,"nodeType":"Return","src":"42323:14:160"}]}},{"expression":{"hexValue":"74727565","id":81456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42364:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":81438,"id":81457,"nodeType":"Return","src":"42357:11:160"}]},"documentation":{"id":81430,"nodeType":"StructuredDocumentation","src":"41886:231:160","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":"42131:14:160","parameters":{"id":81435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81432,"mutability":"mutable","name":"destination","nameLocation":"42154:11:160","nodeType":"VariableDeclaration","scope":81459,"src":"42146:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81431,"name":"address","nodeType":"ElementaryTypeName","src":"42146:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81434,"mutability":"mutable","name":"value","nameLocation":"42175:5:160","nodeType":"VariableDeclaration","scope":81459,"src":"42167:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81433,"name":"uint128","nodeType":"ElementaryTypeName","src":"42167:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"42145:36:160"},"returnParameters":{"id":81438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81459,"src":"42199:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81436,"name":"bool","nodeType":"ElementaryTypeName","src":"42199:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42198:6:160"},"scope":81521,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81520,"nodeType":"FunctionDefinition","src":"42676:1106:160","nodes":[],"body":{"id":81519,"nodeType":"Block","src":"42718:1064:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81465,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42732:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42736:5:160","memberName":"value","nodeType":"MemberAccess","src":"42732:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42744:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42732:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42749:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42753:4:160","memberName":"data","nodeType":"MemberAccess","src":"42749:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42758:6:160","memberName":"length","nodeType":"MemberAccess","src":"42749:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42768:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42749:20:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42732:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42893:8:160","subExpression":{"id":81488,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80124,"src":"42894:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81490,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42905:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42909:4:160","memberName":"data","nodeType":"MemberAccess","src":"42905:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42914:6:160","memberName":"length","nodeType":"MemberAccess","src":"42905:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":81493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42924:4:160","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"42905:23:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42893:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81516,"nodeType":"Block","src":"43723:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":81513,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77060,"src":"43744:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43744:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":81515,"nodeType":"RevertStatement","src":"43737:28:160"}]},"id":81517,"nodeType":"IfStatement","src":"42889:887:160","trueBody":{"id":81512,"nodeType":"Block","src":"42930:787:160","statements":[{"assignments":[81498],"declarations":[{"constant":false,"id":81498,"mutability":"mutable","name":"callReply","nameLocation":"43393:9:160","nodeType":"VariableDeclaration","scope":81512,"src":"43385:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81497,"name":"uint256","nodeType":"ElementaryTypeName","src":"43385:7:160","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":81499,"nodeType":"VariableDeclarationStatement","src":"43385:17:160"},{"AST":{"nativeSrc":"43442:63:160","nodeType":"YulBlock","src":"43442:63:160","statements":[{"nativeSrc":"43460:31:160","nodeType":"YulAssignment","src":"43460:31:160","value":{"arguments":[{"kind":"number","nativeSrc":"43486:4:160","nodeType":"YulLiteral","src":"43486:4:160","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"43473:12:160","nodeType":"YulIdentifier","src":"43473:12:160"},"nativeSrc":"43473:18:160","nodeType":"YulFunctionCall","src":"43473:18:160"},"variableNames":[{"name":"callReply","nativeSrc":"43460:9:160","nodeType":"YulIdentifier","src":"43460:9:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81498,"isOffset":false,"isSlot":false,"src":"43460:9:160","valueSize":1}],"flags":["memory-safe"],"id":81500,"nodeType":"InlineAssembly","src":"43417:88:160"},{"assignments":[81502],"declarations":[{"constant":false,"id":81502,"mutability":"mutable","name":"messageId","nameLocation":"43527:9:160","nodeType":"VariableDeclaration","scope":81512,"src":"43519:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43519:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81510,"initialValue":{"arguments":[{"expression":{"id":81504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"43552:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43556:4:160","memberName":"data","nodeType":"MemberAccess","src":"43552:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81506,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81498,"src":"43562:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":81507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43575:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43562:14:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81503,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80720,"src":"43539:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":81509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43539:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43519:58:160"},{"AST":{"nativeSrc":"43617:90:160","nodeType":"YulBlock","src":"43617:90:160","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43642:4:160","nodeType":"YulLiteral","src":"43642:4:160","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"43648:9:160","nodeType":"YulIdentifier","src":"43648:9:160"}],"functionName":{"name":"mstore","nativeSrc":"43635:6:160","nodeType":"YulIdentifier","src":"43635:6:160"},"nativeSrc":"43635:23:160","nodeType":"YulFunctionCall","src":"43635:23:160"},"nativeSrc":"43635:23:160","nodeType":"YulExpressionStatement","src":"43635:23:160"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43682:4:160","nodeType":"YulLiteral","src":"43682:4:160","type":"","value":"0x00"},{"kind":"number","nativeSrc":"43688:4:160","nodeType":"YulLiteral","src":"43688:4:160","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"43675:6:160","nodeType":"YulIdentifier","src":"43675:6:160"},"nativeSrc":"43675:18:160","nodeType":"YulFunctionCall","src":"43675:18:160"},"nativeSrc":"43675:18:160","nodeType":"YulExpressionStatement","src":"43675:18:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81502,"isOffset":false,"isSlot":false,"src":"43648:9:160","valueSize":1}],"flags":["memory-safe"],"id":81511,"nodeType":"InlineAssembly","src":"43592:115:160"}]}},"id":81518,"nodeType":"IfStatement","src":"42728:1048:160","trueBody":{"id":81487,"nodeType":"Block","src":"42771:112:160","statements":[{"assignments":[81476],"declarations":[{"constant":false,"id":81476,"mutability":"mutable","name":"value","nameLocation":"42793:5:160","nodeType":"VariableDeclaration","scope":81487,"src":"42785:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81475,"name":"uint128","nodeType":"ElementaryTypeName","src":"42785:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":81482,"initialValue":{"arguments":[{"expression":{"id":81479,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42809:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42813:5:160","memberName":"value","nodeType":"MemberAccess","src":"42809:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42801:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":81477,"name":"uint128","nodeType":"ElementaryTypeName","src":"42801:7:160","typeDescriptions":{}}},"id":81481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42801:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"42785:34:160"},{"eventCall":{"arguments":[{"id":81484,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81476,"src":"42866:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81483,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"42839:26:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42839:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81486,"nodeType":"EmitStatement","src":"42834:38:160"}]}}]},"documentation":{"id":81460,"nodeType":"StructuredDocumentation","src":"42381:290:160","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":81463,"kind":"modifierInvocation","modifierName":{"id":81462,"name":"whenNotPaused","nameLocations":["42704:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80251,"src":"42704:13:160"},"nodeType":"ModifierInvocation","src":"42704:13:160"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81461,"nodeType":"ParameterList","parameters":[],"src":"42684:2:160"},"returnParameters":{"id":81464,"nodeType":"ParameterList","parameters":[],"src":"42718:0:160"},"scope":81521,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":80098,"name":"IMirror","nameLocations":["2680:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":77166,"src":"2680:7:160"},"id":80099,"nodeType":"InheritanceSpecifier","src":"2680:7:160"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":80097,"nodeType":"StructuredDocumentation","src":"661:1999:160","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":[81521,77166],"name":"Mirror","nameLocation":"2670:6:160","scope":81522,"usedErrors":[77024,77027,77030,77033,77036,77039,77042,77045,77048,77050,77052,77054,77056,77058,77060],"usedEvents":[76912,76925,76936,76943,76948,76953,76964,76973,76984,76993,77000,77007,77014,77021]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":160} \ 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":"2661:42949:160:-:0;;;;;;;;;;;;;-1:-1:-1;;2661:42949:160;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;7664:16;;2661:42949;;;;;;;;7664:16;2661:42949;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2661:42949:160;;;;;;-1:-1:-1;2661:42949:160;;;;;-1:-1:-1;2661:42949:160","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610181575b5061001861149f565b34151580610179575b1561005b577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016e575b1561015f5761007861153c565b6001541580159061014b575b1561013c576001600160801b03341661009c8161167b565b600154903060601b5f528160145260345f20915f198114610128576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610084565b6399dd405f60e01b5f5260045ffd5b50602436101561006b565b503615610021565b5f905f3560e01c90816336a52a18146113315750806342129d00146112355780635ce6c32714611213578063701da98e146111f7578063704ed542146111a35780637a8e0cdd1461110f57806391d5a64c146110b65780639ce110d71461108e578063affed0e014611071578063bfa2857614610f26578063c604969214610e08578063e43f343314610d9d578063f76207bb1461026a5763f887ea400361000f57346102675780600319360112610267576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b506020366003190112610267576001600160401b03600435116102675761014060043536036003190112610267576102a06116d3565b6102ae60043560040161141d565b306001600160a01b0390911603610d8e576102cd60a460043501611431565b610d73575b6102e660e460043501600435600401611452565b90818060051b0460201482151715610d5f576103048260051b611858565b83805b84821015610836578160051b8401359160de19853603018312156108325782850136039160e0831261082e576040519260c084018481106001600160401b0382111761081a5760405286850180358552602001356001600160a01b0381168103610812576020850152604085880101356001600160401b0381116108125736601f82888b0101011215610812576103a990369089880101803590602001611794565b604085015260608588010135906001600160801b0382168203610812576040916060860152607f19011261082e5760405190604082018281106001600160401b0382111761081a576040528685016080810135835260a001356001600160e01b0319811690036108165786850160a081013560208401526080850183905260c0013591821515830361081257846104ce603560548660209760a060019b0152845195888601519160606040880151970151918051908b63ffffffff60e01b91015116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b168685015260648401526084830152151560f81b6088820152030160158101845201826113e8565b519020868201520192858101608001356104f4576104ed908601611892565b0190610307565b61050260c082880101611431565b15610703578786826001600160f81b031961052182840160a00161187d565b841a60f81b16156060905f146106905750610547604061054e9285940101858b016117ca565b3691611794565b61055c6020858b010161141d565b6001600160801b036105726060878d010161143e565b16602083519301916207a120f161058761164c565b5015610594575b506104ed565b6105b96105a560208389010161141d565b6105b36060848a010161143e565b9061182b565b15610629575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c360406105f06060848a010161143e565b60806001600160e01b03196106098b870160a00161187d565b16946001600160801b038451931683528a0101356020820152a25f61058e565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a61065860208389010161141d565b6106666060848a010161143e565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a16105bf565b83926106fe916106e16106a985840160408101906117ca565b6106b760a08887010161187d565b93604051978896634a646c7f60e01b6020890152013560248701526044860152608485019161139a565b9063ffffffff60e01b16606483015203601f1981018352826113e8565b61054e565b6107146105a560208389010161141d565b156107ab575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c661074b87830160408101906117ca565b6107596060858b010161143e565b60806001600160e01b0319610772878d0160a00161187d565b16956001600160801b0361079360405196879660608852606088019161139a565b931660208501528b01013560408301520390a26104ed565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a6107da60208389010161141d565b6107e86060848a010161143e565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a161071a565b8980fd5b8880fd5b634e487b7160e01b8a52604160045260248afd5b8780fd5b8680fd5b85838660051b902060c46004350135602219600435360301811215610d5b5760043501906004820135916001600160401b038311610d57576060830236036024820113610d57578260051b9083820460201484151715610cc35761089c82949392611858565b91859486955b858710156109d7576108d99495966001916004606083028701019061093b610932602080850135938c816060604089019e8f61141d565b9801976108e58961143e565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526109256064826113e8565b519020910152019961141d565b6105b38461143e565b1561098e5761096a7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657839261143e565b604080519283526001600160801b0391909116602083015290a15b019594936108a2565b6109b87f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed9261143e565b604080519283526001600160801b0391909116602083015290a1610985565b81852083896109ef6004803561010481019101611452565b8060051b9181830460201482151715610d4357610a0b83611858565b918491825b828410610cd7575050505020610a3161012460043501600435600401611452565b8060051b9181830460201482151715610cc357610a4d83611858565b918591825b828410610c895750505050209060446004350193610a6f85611431565b15610c5757610a8260646004350161141d565b95610a8b61153c565b60025496600186816101008160a81b038460081b166affffffffffffffffffffff60a81b8c161717998a600255161715610c4857602097476001600160801b031690610ae490829060081c6001600160a01b031661182b565b15610bfb575b50505b8454602460043501359586809203610bca575b5050610b19610b1360043560040161141d565b96611431565b610b2760646004350161141d565b610b3560846004350161143e565b90610b4460a460043501611431565b92604051988b8a019a6001600160601b03199060601b168b5260348a0152151560f81b60548901526001600160601b03199060601b1660558801526001600160801b03199060801b166069870152151560f81b6079860152607a850152609a84015260ba83015260da82015260da8152610bbf60fa826113e8565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093087604051878152a18488610b00565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a18780610aea565b63463a5c5f60e01b8652600486fd5b6001600160a01b03610c6d60043560640161141d565b16610c7a57602095610aed565b6304c3c7a160e41b8452600484fd5b6020600191610c9c6105478787876117fc565b828151910120818801520193610cbc610cb68286866117fc565b906119b7565b0192610a52565b634e487b7160e01b85526011600452602485fd5b6020600191610cea6105478787876117fc565b8281519101208188015201937f7663a1334632838f3d8ba885a6276c6f369bc435577c9e82d80e887dee236925610d228286866117fc565b610d3960405192839260208452602084019161139a565b0390a10192610a10565b634e487b7160e01b84526011600452602484fd5b8380fd5b8280fd5b634e487b7160e01b83526011600452602483fd5b610d89610d8460846004350161143e565b61167b565b6102d2565b63ed488aa360e01b8152600490fd5b5034610267578060031936011261026757610db661149f565b60025460ff811615610df957610de290476001600160801b03169060081c6001600160a01b031661182b565b15610dea5780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b5034610f225760a0366003190112610f2257610e22611384565b6044359060ff8216809203610f2257610e3961149f565b610e4161153c565b6001600160a01b03610e727f0000000000000000000000000000000000000000000000000000000000000000611714565b16803b15610f22575f809160e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af1610ef6575b505f516020611d3e5f395f51905f5291610eec602092611557565b604051908152a180f35b602091935091610f145f5f516020611d3e5f395f51905f52946113e8565b610eec5f9492505091610ed1565b5f80fd5b34610f22576080366003190112610f22576004356001600160a01b03811690819003610f22576024356001600160a01b03811690819003610f2257604435801515809103610f2257606435926001600160801b038416809403610f2257610f8b6116d3565b600354906001600160a01b0382166110625760ff8260a01c16611053577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416611044576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc558061102a57005b60205f516020611d3e5f395f51905f5291604051908152a1005b638778dcd360e01b5f5260045ffd5b6325f368db60e11b5f5260045ffd5b63f20d240560e01b5f5260045ffd5b34610f22575f366003190112610f22576020600154604051908152f35b34610f22575f366003190112610f22576003546040516001600160a01b039091168152602090f35b34610f22576020366003190112610f22576110cf61149f565b6110d761153c565b6110df611618565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a2005b6040366003190112610f22576024356001600160401b038111610f225761115b7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611357565b61116692919261149f565b61116e61153c565b611176611618565b6001600160801b0334169061118a8261167b565b61119e6040519283923396600435856113ba565b0390a2005b34610f22576020366003190112610f22575f516020611d3e5f395f51905f5260206111cc611384565b6111d461149f565b6111dc61153c565b6111e581611557565b6001600160801b0360405191168152a1005b34610f22575f366003190112610f225760205f54604051908152f35b34610f22575f366003190112610f2257602060ff600254166040519015158152f35b6040366003190112610f22576004356001600160401b038111610f2257611260903690600401611357565b9060243590811515809203610f225761127761149f565b61127f61153c565b6001541580159061131d575b1561013c576001600160801b033416906112a48261167b565b600154933060601b5f528460145260345f20935f198614610128576113047f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549360016020980160015560405193878552608089860152608085019161139a565b93604083015260608201528033930390a2604051908152f35b506003546001600160a01b0316331461128b565b34610f22575f366003190112610f225760025460081c6001600160a01b03168152602090f35b9181601f84011215610f22578235916001600160401b038311610f225760208381860195010111610f2257565b600435906001600160801b0382168203610f2257565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113e1916001600160801b0393979697865260606020870152606086019161139a565b9416910152565b90601f801991011681019081106001600160401b0382111761140957604052565b634e487b7160e01b5f52604160045260245ffd5b356001600160a01b0381168103610f225790565b358015158103610f225790565b356001600160801b0381168103610f225790565b903590601e1981360301821215610f2257018035906001600160401b038211610f2257602001918160051b36038313610f2257565b90816020910312610f2257518015158103610f225790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611531575f91611502575b506114f357565b63d93c066560e01b5f5260045ffd5b611524915060203d60201161152a575b61151c81836113e8565b810190611487565b5f6114ec565b503d611512565b6040513d5f823e3d90fd5b60ff6002541661154857565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115685750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b036115a085611714565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af1908115611531575f916115f9575b50156115ea57565b6303a25d1960e31b5f5260045ffd5b611612915060203d60201161152a5761151c81836113e8565b5f6115e2565b6001541561162257565b631a2efd3560e31b5f5260045ffd5b6001600160401b03811161140957601f01601f191660200190565b3d15611676573d9061165d82611631565b9161166b60405193846113e8565b82523d5f602084013e565b606090565b6001600160801b03168061168c5750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16116bc61164c565b50156116c457565b6308eb200360e41b5f5260045ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361170557565b6375f48d7160e11b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115611531575f91611752575b506001600160a01b031690565b90506020813d60201161178c575b8161176d602093836113e8565b81010312610f2257516001600160a01b0381168103610f22575f611745565b3d9150611760565b9291926117a082611631565b916117ae60405193846113e8565b829481845281830111610f22578281602093845f960137010152565b903590601e1981360301821215610f2257018035906001600160401b038211610f2257602001918136038313610f2257565b90821015611817576118139160051b8101906117ca565b9091565b634e487b7160e01b5f52603260045260245ffd5b906001600160801b03169081611842575050600190565b5f8080938193611388f161185461164c565b5090565b6040519190601f01601f191682016001600160401b03811183821017610f2257604052565b356001600160e01b031981168103610f225790565b61189e60c08201611431565b61190b575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736119066118d36020840161141d565b6118e060408501856117ca565b6118ef6060879593950161143e565b9060405194859460018060a01b03169735856113ba565b0390a2565b602081015f8061191a8361141d565b8161192860408701876117ca565b9190826040519384928337810182815203926207a120f161194761164c565b501561195357506118a3565b61197d7f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f89161141d565b6119896060840161143e565b60408051943585526001600160801b0390911660208501526001600160a01b03909116929081908101611906565b908015611d395781358060f81c90600182101580611d2e575b15611d285760f31c611fe016600181018310611d28576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611cfe575b80611cd4575b80611caa575b80611c80575b80611c69575b80611c3f575b80611c15575b80611beb575b80611bc1575b80611b97575b80611b6d575b80611b43575b80611b19575b80611aef575b15611ae8578190035f190191826001611a7c82611858565b93870101833760218501359460418101359160018103611aa05750505090919250a1565b60028103611aae57505050a2565b600381979593969497145f14611ac757505090919293a3565b600414611ad7575b505050505050565b6061013594a45f8080808080611acf565b5050505050565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611a64565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611a5e565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f3841415611a58565b507f7663a1334632838f3d8ba885a6276c6f369bc435577c9e82d80e887dee236925841415611a52565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611a4c565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611a46565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6841415611a40565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611a3a565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f8011773841415611a34565b505f516020611d3e5f395f51905f52841415611a2e565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611a28565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611a22565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611a1c565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611a16565b50505050565b5060048211156119d0565b505056fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2661:42949:160:-:0;;;;;;;;;;-1:-1:-1;9922:69:160;;;:::i;:::-;44558:9;:13;;:37;;;-1:-1:-1;44554:1048:160;;;44665:33;2661:42949;;;-1:-1:-1;;;;;44558:9:160;2661:42949;;;44665:33;2661:42949;44554:1048;2661:42949;44720:7;2661:42949;;;;44719:8;:35;;;44554:1048;44715:887;;;8838:67;;:::i;:::-;8633:5;2661:42949;8633:9;;;:38;;;44715:887;2661:42949;;;-1:-1:-1;;;;;44558:9:160;2661:42949;19854:6;;;:::i;:::-;8633:5;2661:42949;20075:154;;;;44570:1;20075:154;;;;;44570:1;20075:154;2661:42949;;;;;;;8633:5;2661:42949;8633:5;2661:42949;20261:70;2661:42949;;;;;;;;;;;;;;;;;;44570:1;2661:42949;;;;44570:1;2661:42949;;;;;;21306:273:168;;2661:42949:160;;;;;;;;;;;;45243:88;45388:14;;20075:154;2661:42949;;;20290:10;;20261:70;;;;44570:1;45418:115;2661:42949;44570:1;45418:115;2661:42949;;;;44570:1;2661:42949;;;;;44570:1;2661:42949;;;;;44570:1;2661:42949;;44570:1;2661:42949;8633:38;-1:-1:-1;44720:7:160;2661:42949;-1:-1:-1;;;;;2661:42949:160;8646:10;:25;8633:38;;44715:887;45570:21;;;44570:1;45570:21;2661:42949;44570:1;45570:21;44719:35;2661:42949;44750:4;2661:42949;44731:23;;44719:35;;44558:37;2661:42949;;44575:20;44558:37;;2661:42949;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3268:31;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;-1:-1:-1;2661:42949:160;;-1:-1:-1;;2661:42949:160;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;-1:-1:-1;;2661:42949:160;;;;9543:63;;:::i;:::-;17294:19;2661:42949;;;;17294:19;:::i;:::-;17325:4;-1:-1:-1;;;;;2661:42949:160;;;17294:36;2661:42949;;17482:38;;2661:42949;;17482:38;;:::i;:::-;17478:113;;2661:42949;17712:20;;2661:42949;;17712:20;2661:42949;;;;17712:20;:::i;:::-;2661:42949;;;;;;;;;;;;;;21953:35;2661:42949;;;21953:35;:::i;:::-;21998:18;;22064:3;22047:15;;;;;;2661:42949;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;17482:38;2661:42949;;-1:-1:-1;;;;;;2661:42949:160;;;;;;;;;17482:38;2661:42949;;;;;;;;;;;;;;;;;;;;;;;;;21306:273:168;2661:42949:160;;;;;17482:38;2661:42949;;;;;;;;;;;;;;;;21405:15:168;2661:42949:160;;;;;;;;;;;;;;;;;;;21306:273:168;;;;;;2661:42949:160;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;;;;;;;21306:273:168;;;;;;;;;;:::i;:::-;2661:42949:160;21283:306:168;;4093:83:85;;;;2661:42949:160;;;;;;;;;;22756:7;2661:42949;;;22756:7;:::i;:::-;2661:42949;22032:13;;;22682:162;30274:13;2661:42949;;;;;30274:13;:::i;:::-;2661:42949;;;;;;-1:-1:-1;;;;;;30325:26:160;2661:42949;;;17482:38;2661:42949;30325:26;:::i;:::-;:29;;2661:42949;;;30325:34;2661:42949;30409:433;;;;;2661:42949;30457:16;2661:42949;;;;;;;;;;30457:16;:::i;:::-;2661:42949;;;:::i;:::-;30874:20;2661:42949;;;;;30874:20;:::i;:::-;-1:-1:-1;;;;;30921:14:160;2661:42949;;;;;30921:14;:::i;:::-;2661:42949;;30874:71;;;;;30905:7;30874:71;;;:::i;:::-;;30964:8;30960:513;;30409:433;30270:1562;22682:162;;30960:513;31015:52;31030:20;2661:42949;;;;;31030:20;:::i;:::-;31052:14;2661:42949;;;;;31052:14;:::i;:::-;31015:52;;:::i;:::-;31089:16;31085:125;;30960:513;31373:85;2661:42949;31389:14;2661:42949;;;;;31389:14;:::i;:::-;2661:42949;-1:-1:-1;;;;;;31431:26:160;2661:42949;;;17482:38;2661:42949;31431:26;:::i;:::-;2661:42949;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;31373:85;30960:513;;;31085:125;31134:57;31154:20;2661:42949;;;;;31154:20;:::i;:::-;31176:14;2661:42949;;;;;31176:14;:::i;:::-;2661:42949;;;-1:-1:-1;;;;;2661:42949:160;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;31134:57;31085:125;;30409:433;2661:42949;;30674:153;;2661:42949;30765:16;2661:42949;;;;;;;30765:16;:::i;:::-;30783:26;17482:38;2661:42949;;;;30783:26;:::i;:::-;2661:42949;;;30718:32;;;;;;2661:42949;30674:153;;;2661:42949;;30674:153;;;2661:42949;;;;;;;;;;:::i;:::-;;;;;;;;;;30674:153;21306:273:168;;30674:153:160;;;;;;:::i;:::-;30409:433;;30270:1562;31526:52;31541:20;2661:42949;;;;;31541:20;:::i;31526:52::-;31596:16;31592:117;;30270:1562;31728:93;31734:16;2661:42949;;;;;;;31734:16;:::i;:::-;31752:14;2661:42949;;;;;31752:14;:::i;:::-;2661:42949;-1:-1:-1;;;;;;31794:26:160;2661:42949;;;17482:38;2661:42949;31794:26;:::i;:::-;2661:42949;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;31728:93;;;22682:162;;31592:117;31637:57;31657:20;2661:42949;;;;;31657:20;:::i;:::-;31679:14;2661:42949;;;;;31679:14;:::i;:::-;2661:42949;;;-1:-1:-1;;;;;2661:42949:160;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;31637:57;31592:117;;2661:42949;;;;;;;;;-1:-1:-1;;;2661:42949:160;;;;;;;;;;;;;;;;22047:15;;;;2661:42949;;1083:131:88;;17850:23:160;2661:42949;;17850:23;2661:42949;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32605:33;;;;;;:::i;:::-;32648:18;;32682:13;;32677:628;32712:3;32697:13;;;;;;32845:17;2661:42949;;;;;;;;;;;;;33052:46;33067:17;2661:42949;;;;;32845:17;;;2661:42949;;32845:17;;;;;:::i;:::-;32864:11;;;;;;:::i;:::-;2661:42949;;21944:50:168;;;;2661:42949:160;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;21944:50:168;;;;;;:::i;:::-;2661:42949:160;21934:61:168;;4093:83:85;;;2661:42949:160;33067:17;;:::i;:::-;33086:11;;;:::i;33052:46::-;33086:11;;;33178;33148:42;33178:11;;:::i;:::-;2661:42949;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;33148:42;33112:183;2661:42949;32682:13;;;;;33112:183;33268:11;33234:46;33268:11;;:::i;:::-;2661:42949;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;33234:46;33112:183;;32697:13;1083:131:88;;;32697:13:160;;18020:18;2661:42949;;;18020:18;;;;2661:42949;18020:18;:::i;:::-;2661:42949;;;;;;;;;;;;;;;33948:33;;;:::i;:::-;33991:18;;;;34040:13;;;;;;1083:131:88;;;;;18195:21:160;;2661:42949;;18195:21;2661:42949;;;;18195:21;:::i;:::-;2661:42949;;;;;;;;;;;;;;;34969:33;;;:::i;:::-;35012:18;;;;35061:13;;;;;;1083:131:88;;;;;2661:42949:160;;;;18297:18;;;;;:::i;:::-;;;;18345:21;21944:50:168;2661:42949:160;;18345:21;;:::i;:::-;8838:67;;;:::i;:::-;42509:13;2661:42949;;;;;;;;;;;;;;811:66:11;;;2661:42949:160;;;;;;42509:13;2661:42949;;;;;;;;20864:21;-1:-1:-1;;;;;2661:42949:160;;21112:37;;2661:42949;;;;-1:-1:-1;;;;;2661:42949:160;21112:37;:::i;:::-;42733:8;42729:231;;18293:183;;;;2661:42949;;18577:24;2661:42949;;18577:24;2661:42949;18564:37;;;;;18560:110;;18293:183;2661:42949;;18879:18;18808:19;2661:42949;;;;18808:19;:::i;:::-;18879:18;;:::i;:::-;18911:21;21944:50:168;2661:42949:160;;18911:21;;:::i;:::-;18946:26;;2661:42949;;18946:26;;:::i;:::-;2661:42949;18986:38;17482;2661:42949;;17482:38;18986;:::i;:::-;2661:42949;;;23063:350:168;;;;2661:42949:160;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23063:350:168;;;;;;:::i;:::-;2661:42949:160;23040:383:168;;2661:42949:160;;;;;;18560:110;2661:42949;43320:23;2661:42949;;;;;;43320:23;18560:110;;;;42729:231;2661:42949;;;-1:-1:-1;;;;;2661:42949:160;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;42894:55;;;42729:231;;;;2661:42949;-1:-1:-1;;;2661:42949:160;;;;;18293:183;-1:-1:-1;;;;;18406:21:160;2661:42949;;21944:50:168;18406:21:160;;:::i;:::-;2661:42949;;;;18293:183;;;2661:42949;-1:-1:-1;;;2661:42949:160;;;;;35076:3;2661:42949;;35125:10;2661:42949;35125:10;;;;;:::i;2661:42949::-;;;;;;35115:21;4093:83:85;;;;2661:42949:160;35324:10;;;;;;;:::i;:::-;;;:::i;:::-;2661:42949;35046:13;;;2661:42949;-1:-1:-1;;;2661:42949:160;;;;;;;;34055:3;2661:42949;;34104:10;2661:42949;34104:10;;;;;:::i;2661:42949::-;;;;;;34094:21;4093:83:85;;;;2661:42949:160;34291:10;34281:21;34291:10;;;;;:::i;:::-;2661:42949;;;;;;;;;;;;;;:::i;:::-;34281:21;;;2661:42949;34025:13;;;2661:42949;-1:-1:-1;;;2661:42949:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;2661:42949:160;;;;;;;;17478:113;17553:26;;;2661:42949;;17553:26;;:::i;:::-;;:::i;:::-;17478:113;;2661:42949;-1:-1:-1;;;2661:42949:160;;;;;;;;;;;;;;;;;;9922:69;;:::i;:::-;9403:6;2661:42949;;;;;;;21112:37;;20864:21;-1:-1:-1;;;;;2661:42949:160;;;;-1:-1:-1;;;;;2661:42949:160;21112:37;:::i;:::-;2661:42949;;;;;;-1:-1:-1;;;2661:42949:160;;;;;;-1:-1:-1;;;2661:42949:160;;;;;;;;;;;;-1:-1:-1;;2661:42949:160;;;;;;:::i;:::-;;;;;;;;;;;;9922:69;;:::i;:::-;8838:67;;:::i;:::-;-1:-1:-1;;;;;14411:14:160;14418:6;14411:14;:::i;:::-;2661:42949;14411:79;;;;;2661:42949;;;14411:79;2661:42949;;;;;;;;;14411:79;;14433:10;2661:42949;14411:79;;2661:42949;14453:4;2661:42949;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14411:79;;;;2661:42949;14527:6;-1:-1:-1;;;;;;;;;;;14527:6:160;;2661:42949;14527:6;;:::i;:::-;2661:42949;;;;;14550:39;2661:42949;;14411:79;2661:42949;14411:79;;;;;2661:42949;-1:-1:-1;;;;;;;;;;;14411:79:160;;:::i;:::-;14527:6;2661:42949;14411:79;;;;;;;;2661:42949;;;;;;;;;-1:-1:-1;;2661:42949:160;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;9543:63;;:::i;:::-;16221:11;2661:42949;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;811:66:11;2661:42949:160;;-1:-1:-1;;;;;2661:42949:160;;811:66:11;;-1:-1:-1;;;;;;811:66:11;;;;;;;;;-1:-1:-1;;;811:66:11;;16221:11:160;811:66:11;-1:-1:-1;;;;;;811:66:11;;;;16671:30:160;16667:124;;2661:42949;16667:124;2661:42949;-1:-1:-1;;;;;;;;;;;2661:42949:160;;;;;;16722:58;2661:42949;811:66:11;;;;2661:42949:160;811:66:11;2661:42949:160;;811:66:11;2661:42949:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2661:42949:160;;;;;3598:20;2661:42949;;;;;;;;;;;;;-1:-1:-1;;2661:42949:160;;;;4090:26;2661:42949;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;-1:-1:-1;;2661:42949:160;;;;9922:69;;:::i;:::-;8838:67;;:::i;:::-;7844:83;;:::i;:::-;2661:42949;;;;;;12993:46;2661:42949;13028:10;12993:46;;2661:42949;;;;-1:-1:-1;;2661:42949:160;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;12520:64;2661:42949;;;;;;:::i;:::-;9922:69;;;;;:::i;:::-;8838:67;;:::i;:::-;7844:83;;:::i;:::-;-1:-1:-1;;;;;12459:9:160;2661:42949;12497:6;;;;:::i;:::-;12520:64;2661:42949;;12555:10;;;;2661:42949;;;12520:64;;:::i;:::-;;;;2661:42949;;;;;;;-1:-1:-1;;2661:42949:160;;;;-1:-1:-1;;;;;;;;;;;2661:42949:160;;;:::i;:::-;9922:69;;:::i;:::-;8838:67;;:::i;:::-;10394:5;;;:::i;:::-;-1:-1:-1;;;;;2661:42949:160;;;;;;13469:39;2661:42949;;;;;;;-1:-1:-1;;2661:42949:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2661:42949:160;;;;;;3708:18;2661:42949;;;;;;;;;;;;;-1:-1:-1;;2661:42949:160;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9922:69;;:::i;:::-;8838:67;;:::i;:::-;8633:5;2661:42949;8633:9;;;:38;;;2661:42949;;;;-1:-1:-1;;;;;19816:9:160;2661:42949;19854:6;;;;:::i;:::-;8633:5;2661:42949;20075:154;;;;2661:42949;20075:154;;;;;2661:42949;20075:154;2661:42949;;;;;;;;20261:70;2661:42949;8633:5;2661:42949;;;8633:5;2661:42949;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;20075:154;2661:42949;;;20290:10;;20261:70;;;;2661:42949;;;;;;8633:38;-1:-1:-1;8660:11:160;2661:42949;-1:-1:-1;;;;;2661:42949:160;8646:10;:25;8633:38;;2661:42949;;;;;;-1:-1:-1;;2661:42949:160;;;;3980:24;2661:42949;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;2661:42949:160;;;;;;;;-1:-1:-1;;2661:42949:160;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;21306:273:168;;2661:42949:160;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;:::o;:::-;;;;-1:-1:-1;2661:42949:160;;;;;-1:-1:-1;2661:42949:160;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2661:42949:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;10083:108::-;2661:42949;;-1:-1:-1;;;10142:24:160;;;2661:42949;10142:24;2661:42949;10150:6;-1:-1:-1;;;;;2661:42949:160;10142:24;;;;;;;-1:-1:-1;10142:24:160;;;10083:108;10141:25;2661:42949;;10083:108::o;2661:42949::-;;;;-1:-1:-1;2661:42949:160;10142:24;-1:-1:-1;2661:42949:160;10142:24;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2661:42949;;;;;;;;;8992:89;2661:42949;9050:6;2661:42949;;;;8992:89::o;2661:42949::-;;;;-1:-1:-1;2661:42949:160;;-1:-1:-1;2661:42949:160;10527:228;-1:-1:-1;;;;;2661:42949:160;10590:10;10586:163;;10527:228;:::o;10586:163::-;10638:6;;2661:42949;;10631:54;-1:-1:-1;;;;;10631:14:160;10638:6;10631:14;:::i;:::-;2661:42949;;-1:-1:-1;;;10631:54:160;;10659:10;10631:54;;;2661:42949;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;;;;;10599:1;;2661:42949;10631:54;;;;;;;10599:1;10631:54;;;10586:163;2661:42949;;;;10527:228::o;2661:42949::-;;;;10599:1;2661:42949;10631:54;10599:1;2661:42949;10631:54;;;;2661:42949;10631:54;2661:42949;10631:54;;;;;;;:::i;:::-;;;;8033:107;8098:5;2661:42949;8098:9;2661:42949;;8033:107::o;2661:42949::-;;;;-1:-1:-1;2661:42949:160;;-1:-1:-1;2661:42949:160;;-1:-1:-1;;;;;2661:42949:160;;;;;;-1:-1:-1;;2661:42949:160;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2661:42949:160;;;;:::o;:::-;;;:::o;10894:215::-;-1:-1:-1;;;;;2661:42949:160;10958:10;10954:149;;10894:215;:::o;10954:149::-;10967:1;11002:6;;;;;:29;;;;:::i;:::-;;2661:42949;;;10894:215::o;2661:42949::-;;;;10967:1;2661:42949;;10967:1;2661:42949;9698:102;9767:6;-1:-1:-1;;;;;2661:42949:160;9753:10;:20;2661:42949;;9698:102::o;2661:42949::-;;;;;;;;;43524:182;2661:42949;;-1:-1:-1;;;43626:33:160;;2661:42949;43626:33;;2661:42949;;43626:33;;2661:42949;;-1:-1:-1;;;;;2661:42949:160;43626:33;;;;;;;-1:-1:-1;43626:33:160;;;43524:182;-1:-1:-1;;;;;;2661:42949:160;;43524:182::o;43626:33::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2661:42949;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;43626:33;;;;;;-1:-1:-1;43626:33:160;;2661:42949;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2661:42949:160;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;43948:253;;-1:-1:-1;;;;;2661:42949:160;44045:10;;44041:133;;44183:11;;44190:4;43948:253;:::o;44041:133::-;2661:42949;44089:46;;;;;44111:5;44089:46;;;:::i;:::-;;44149:14;:::o;863:809:85:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:85;;;-1:-1:-1;;;;;1052:614:85;;;;;;;;;;863:809::o;2661:42949:160:-;;-1:-1:-1;;;;;;2661:42949:160;;;;;;;:::o;23392:834::-;23715:13;;;;;:::i;:::-;23711:417;;23392:834;24143:76;;24164:20;;;;;:::i;:::-;24186:16;;;;;;:::i;:::-;24204:14;;;;;;;;:::i;:::-;2661:42949;24186:16;2661:42949;;;;;;;;;;;;24143:76;;:::i;:::-;;;;23392:834::o;23711:417::-;23762:20;;;-1:-1:-1;23762:20:160;;;;:::i;:::-;23802:16;;;;;;;:::i;:::-;2661:42949;;;23802:16;2661:42949;;;;;;;;;;;23762:57;;23793:7;23762:57;;;:::i;:::-;;23838:8;23834:284;;23711:417;;;23834:284;24042:20;24011:68;24042:20;;:::i;:::-;24064:14;;;;;:::i;:::-;23802:16;2661:42949;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;-1:-1:-1;;;;;2661:42949:160;;;;;;;;;24011:68;2661:42949;38414:3700;;38499:19;;38493:59;;38592:250;;;;;38858:17;38874:1;38858:17;;;:38;;;38414:3700;38856:41;38852:78;;2661:42949;;;;38874:1;2661:42949;;39071:38;;39065:78;;38874:1;39262:96;;;39929:31;39939:21;39929:31;;;:90;;;38414:3700;39929:147;;;38414:3700;39929:204;;;38414:3700;39929:265;;;38414:3700;39929:331;;;38414:3700;39929:373;;;38414:3700;39929:425;;;38414:3700;39929:465;;;38414:3700;39929:515;;;38414:3700;39929:562;;;38414:3700;39929:606;;;38414:3700;39929:677;;;38414:3700;39929:731;;;38414:3700;39929:782;;;38414:3700;39914:807;39910:844;;2661:42949;;;-1:-1:-1;;2661:42949:160;;;38874:1;40925:21;2661:42949;40925:21;:::i;:::-;40956:118;;;;;;41293:219;;;;;;;;;;38874:1;41526:17;;38874:1;;41559:83;;;;;;;;38414:3700::o;41522:586::-;41678:1;41662:17;;41678:1;;41695:91;;;;38414:3700::o;41658:450::-;41822:1;41806:17;;;;;;;;41802:306;41822:1;;;41839:99;;;;;;;38414:3700::o;41802:306::-;41974:1;41958:17;41954:154;;41802:306;;;;;;;38414:3700::o;41954:154::-;41293:219;;;41991:107;;41954:154;;;;;;;;39910:844;40737:7;;;;;:::o;39929:782::-;40676:35;40686:25;40676:35;;;39929:782;;:731;40622:38;40632:28;40622:38;;;39929:731;;:677;40551:55;40561:45;40551:55;;;39929:677;;:606;40507:28;40517:18;40507:28;;;39929:606;;:562;40460:31;40470:21;40460:31;;;39929:562;;:515;40410:34;40420:24;40410:34;;;39929:515;;:465;40370:24;40380:14;40370:24;;;39929:465;;:425;40318:36;40328:26;40318:36;;;39929:425;;:373;40276:26;40286:16;40276:26;;;39929:373;;:331;40210:50;-1:-1:-1;;;;;;;;;;;40210:50:160;;;39929:331;;:265;40149:45;40159:35;40149:45;;;39929:265;;:204;40092:41;40102:31;40092:41;;;39929:204;;:147;40035:41;40045:31;40035:41;;;39929:147;;:90;39976:43;39986:33;39976:43;;;39929:90;;39065:78;39126:7;;;;:::o;38858:38::-;38879:17;38895:1;38879:17;;;38858:38;;38493:59;38535:7;;:::o","linkReferences":{},"immutableReferences":{"80111":[{"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.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54\",\"dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xfd65a6c942c3533c7253648d9a9b4c0d1f7dbb603d936509dd7f1e9db5fdbd3c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://b727142f3cb78f397c2858cee4045c73d082978fef4e47067b1424e8003689fd\",\"dweb:/ipfs/QmVvSwSKwKeRZuTYUvA4nXhvkCStmsXDU2eTwCoqKQKPRA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2\",\"dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x04f58ddea04563dfa6d88221ad337dd8b4ad9049044655a67c134b7c41721cec\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://90e3ff1f0f3192130047dbee3dc7108f8ba11b65a7a0053d994fa69de2e8133d\",\"dweb:/ipfs/Qmbg2gcytnCYwG5MT8RcZEDMkdMHptDrSrj6vTW3YS755r\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5\",\"dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1","urls":["bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54","dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xfd65a6c942c3533c7253648d9a9b4c0d1f7dbb603d936509dd7f1e9db5fdbd3c","urls":["bzz-raw://b727142f3cb78f397c2858cee4045c73d082978fef4e47067b1424e8003689fd","dweb:/ipfs/QmVvSwSKwKeRZuTYUvA4nXhvkCStmsXDU2eTwCoqKQKPRA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb","urls":["bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2","dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Mirror.sol":{"keccak256":"0x04f58ddea04563dfa6d88221ad337dd8b4ad9049044655a67c134b7c41721cec","urls":["bzz-raw://90e3ff1f0f3192130047dbee3dc7108f8ba11b65a7a0053d994fa69de2e8133d","dweb:/ipfs/Qmbg2gcytnCYwG5MT8RcZEDMkdMHptDrSrj6vTW3YS755r"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a","urls":["bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5","dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":80114,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":80117,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":80120,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":80123,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":80126,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":80129,"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":81676,"exportedSymbols":{"ERC1967Utils":[1269],"Gear":[87300],"Hashes":[62943],"ICallbacks":[76513],"IMirror":[77171],"IRouter":[77796],"IWrappedVara":[77812],"Memory":[62717],"Mirror":[81675],"StorageSlot":[6848]},"nodeType":"SourceUnit","src":"114:45497:160","nodes":[{"id":80083,"nodeType":"PragmaDirective","src":"114:24:160","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":80085,"nodeType":"ImportDirective","src":"140:84:160","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":81676,"sourceUnit":1270,"symbolAliases":[{"foreign":{"id":80084,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"148:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80087,"nodeType":"ImportDirective","src":"225:74:160","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":81676,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":80086,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"233:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80089,"nodeType":"ImportDirective","src":"300:60:160","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":81676,"sourceUnit":62718,"symbolAliases":[{"foreign":{"id":80088,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"308:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80091,"nodeType":"ImportDirective","src":"361:73:160","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":81676,"sourceUnit":62944,"symbolAliases":[{"foreign":{"id":80090,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"369:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80093,"nodeType":"ImportDirective","src":"435:46:160","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":81676,"sourceUnit":76514,"symbolAliases":[{"foreign":{"id":80092,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"443:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80095,"nodeType":"ImportDirective","src":"482:40:160","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":81676,"sourceUnit":77172,"symbolAliases":[{"foreign":{"id":80094,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"490:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80097,"nodeType":"ImportDirective","src":"523:40:160","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":81676,"sourceUnit":77797,"symbolAliases":[{"foreign":{"id":80096,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77796,"src":"531:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80099,"nodeType":"ImportDirective","src":"564:50:160","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":81676,"sourceUnit":77813,"symbolAliases":[{"foreign":{"id":80098,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"572:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80101,"nodeType":"ImportDirective","src":"615:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":81676,"sourceUnit":87301,"symbolAliases":[{"foreign":{"id":80100,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"623:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81675,"nodeType":"ContractDefinition","src":"2661:42949:160","nodes":[{"id":80108,"nodeType":"VariableDeclaration","src":"2940:85:160","nodes":[],"constant":true,"documentation":{"id":80105,"nodeType":"StructuredDocumentation","src":"2694:241:160","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":"2966:14:160","scope":81675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80106,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":80107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2983:42:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":80111,"nodeType":"VariableDeclaration","src":"3268:31:160","nodes":[],"baseFunctions":[77071],"constant":false,"documentation":{"id":80109,"nodeType":"StructuredDocumentation","src":"3032:231:160","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":"3293:6:160","scope":81675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80110,"name":"address","nodeType":"ElementaryTypeName","src":"3268:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":80114,"nodeType":"VariableDeclaration","src":"3364:24:160","nodes":[],"baseFunctions":[77077],"constant":false,"documentation":{"id":80112,"nodeType":"StructuredDocumentation","src":"3306:53:160","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"3379:9:160","scope":81675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3364:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":80117,"nodeType":"VariableDeclaration","src":"3598:20:160","nodes":[],"baseFunctions":[77083],"constant":false,"documentation":{"id":80115,"nodeType":"StructuredDocumentation","src":"3395:198:160","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":"3613:5:160","scope":81675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80116,"name":"uint256","nodeType":"ElementaryTypeName","src":"3598:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":80120,"nodeType":"VariableDeclaration","src":"3708:18:160","nodes":[],"baseFunctions":[77089],"constant":false,"documentation":{"id":80118,"nodeType":"StructuredDocumentation","src":"3625:78:160","text":" @dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"3720:6:160","scope":81675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80119,"name":"bool","nodeType":"ElementaryTypeName","src":"3708:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":80123,"nodeType":"VariableDeclaration","src":"3980:24:160","nodes":[],"baseFunctions":[77095],"constant":false,"documentation":{"id":80121,"nodeType":"StructuredDocumentation","src":"3781:194:160","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":"3995:9:160","scope":81675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80122,"name":"address","nodeType":"ElementaryTypeName","src":"3980:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":80126,"nodeType":"VariableDeclaration","src":"4090:26:160","nodes":[],"baseFunctions":[77101],"constant":false,"documentation":{"id":80124,"nodeType":"StructuredDocumentation","src":"4011:74:160","text":" @dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"4105:11:160","scope":81675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80125,"name":"address","nodeType":"ElementaryTypeName","src":"4090:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":80129,"nodeType":"VariableDeclaration","src":"7451:12:160","nodes":[],"constant":false,"documentation":{"id":80127,"nodeType":"StructuredDocumentation","src":"4123:3323:160","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":"7456:7:160","scope":81675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80128,"name":"bool","nodeType":"ElementaryTypeName","src":"7451:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":80140,"nodeType":"FunctionDefinition","src":"7625:62:160","nodes":[],"body":{"id":80139,"nodeType":"Block","src":"7654:33:160","nodes":[],"statements":[{"expression":{"id":80137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80135,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80111,"src":"7664:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80136,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80132,"src":"7673:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7664:16:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80138,"nodeType":"ExpressionStatement","src":"7664:16:160"}]},"documentation":{"id":80130,"nodeType":"StructuredDocumentation","src":"7470:150:160","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":80133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80132,"mutability":"mutable","name":"_router","nameLocation":"7645:7:160","nodeType":"VariableDeclaration","scope":80140,"src":"7637:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80131,"name":"address","nodeType":"ElementaryTypeName","src":"7637:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7636:17:160"},"returnParameters":{"id":80134,"nodeType":"ParameterList","parameters":[],"src":"7654:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80148,"nodeType":"ModifierDefinition","src":"7844:83:160","nodes":[],"body":{"id":80147,"nodeType":"Block","src":"7876:51:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80143,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80161,"src":"7886:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7886:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80145,"nodeType":"ExpressionStatement","src":"7886:23:160"},{"id":80146,"nodeType":"PlaceholderStatement","src":"7919:1:160"}]},"documentation":{"id":80141,"nodeType":"StructuredDocumentation","src":"7716:123:160","text":" @dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"7853:20:160","parameters":{"id":80142,"nodeType":"ParameterList","parameters":[],"src":"7873:2:160"},"virtual":false,"visibility":"internal"},{"id":80161,"nodeType":"FunctionDefinition","src":"8033:107:160","nodes":[],"body":{"id":80160,"nodeType":"Block","src":"8080:60:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80153,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80117,"src":"8098:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8106:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8098:9:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80156,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77029,"src":"8109:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8109:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8090:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8090:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80159,"nodeType":"ExpressionStatement","src":"8090:43:160"}]},"documentation":{"id":80149,"nodeType":"StructuredDocumentation","src":"7933:95:160","text":" @dev Internal function to check if the init message has been created before."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"8042:21:160","parameters":{"id":80150,"nodeType":"ParameterList","parameters":[],"src":"8063:2:160"},"returnParameters":{"id":80151,"nodeType":"ParameterList","parameters":[],"src":"8080:0:160"},"scope":81675,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80169,"nodeType":"ModifierDefinition","src":"8307:109:160","nodes":[],"body":{"id":80168,"nodeType":"Block","src":"8352:64:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80164,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80187,"src":"8362:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8362:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80166,"nodeType":"ExpressionStatement","src":"8362:36:160"},{"id":80167,"nodeType":"PlaceholderStatement","src":"8408:1:160"}]},"documentation":{"id":80162,"nodeType":"StructuredDocumentation","src":"8146:156:160","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":"8316:33:160","parameters":{"id":80163,"nodeType":"ParameterList","parameters":[],"src":"8349:2:160"},"virtual":false,"visibility":"internal"},{"id":80187,"nodeType":"FunctionDefinition","src":"8555:172:160","nodes":[],"body":{"id":80186,"nodeType":"Block","src":"8615:112:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80174,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80117,"src":"8633:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8641:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8633:9:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80177,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8646:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8650:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8646:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80179,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80126,"src":"8660:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8646:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8633:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80182,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77032,"src":"8673:44:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8673:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8625:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8625:95:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80185,"nodeType":"ExpressionStatement","src":"8625:95:160"}]},"documentation":{"id":80170,"nodeType":"StructuredDocumentation","src":"8422:128:160","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":"8564:34:160","parameters":{"id":80171,"nodeType":"ParameterList","parameters":[],"src":"8598:2:160"},"returnParameters":{"id":80172,"nodeType":"ParameterList","parameters":[],"src":"8615:0:160"},"scope":81675,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80195,"nodeType":"ModifierDefinition","src":"8838:67:160","nodes":[],"body":{"id":80194,"nodeType":"Block","src":"8862:43:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80190,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80207,"src":"8872:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8872:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80192,"nodeType":"ExpressionStatement","src":"8872:15:160"},{"id":80193,"nodeType":"PlaceholderStatement","src":"8897:1:160"}]},"documentation":{"id":80188,"nodeType":"StructuredDocumentation","src":"8733:100:160","text":" @dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"8847:12:160","parameters":{"id":80189,"nodeType":"ParameterList","parameters":[],"src":"8859:2:160"},"virtual":false,"visibility":"internal"},{"id":80207,"nodeType":"FunctionDefinition","src":"8992:89:160","nodes":[],"body":{"id":80206,"nodeType":"Block","src":"9031:50:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9049:7:160","subExpression":{"id":80200,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80120,"src":"9050:6:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80202,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77035,"src":"9058:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9058:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80199,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9041:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9041:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80205,"nodeType":"ExpressionStatement","src":"9041:33:160"}]},"documentation":{"id":80196,"nodeType":"StructuredDocumentation","src":"8911:76:160","text":" @dev Internal function to check if the program is active."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"9001:13:160","parameters":{"id":80197,"nodeType":"ParameterList","parameters":[],"src":"9014:2:160"},"returnParameters":{"id":80198,"nodeType":"ParameterList","parameters":[],"src":"9031:0:160"},"scope":81675,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80215,"nodeType":"ModifierDefinition","src":"9192:67:160","nodes":[],"body":{"id":80214,"nodeType":"Block","src":"9216:43:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80210,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80226,"src":"9226:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9226:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80212,"nodeType":"ExpressionStatement","src":"9226:15:160"},{"id":80213,"nodeType":"PlaceholderStatement","src":"9251:1:160"}]},"documentation":{"id":80208,"nodeType":"StructuredDocumentation","src":"9087:100:160","text":" @dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"9201:12:160","parameters":{"id":80209,"nodeType":"ParameterList","parameters":[],"src":"9213:2:160"},"virtual":false,"visibility":"internal"},{"id":80226,"nodeType":"FunctionDefinition","src":"9346:91:160","nodes":[],"body":{"id":80225,"nodeType":"Block","src":"9385:52:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80220,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80120,"src":"9403:6:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80221,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"9411:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9411:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80219,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9395:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9395:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80224,"nodeType":"ExpressionStatement","src":"9395:35:160"}]},"documentation":{"id":80216,"nodeType":"StructuredDocumentation","src":"9265:76:160","text":" @dev Internal function to check if the program is exited."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"9355:13:160","parameters":{"id":80217,"nodeType":"ParameterList","parameters":[],"src":"9368:2:160"},"returnParameters":{"id":80218,"nodeType":"ParameterList","parameters":[],"src":"9385:0:160"},"scope":81675,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80234,"nodeType":"ModifierDefinition","src":"9543:63:160","nodes":[],"body":{"id":80233,"nodeType":"Block","src":"9565:41:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80229,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80248,"src":"9575:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9575:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80231,"nodeType":"ExpressionStatement","src":"9575:13:160"},{"id":80232,"nodeType":"PlaceholderStatement","src":"9598:1:160"}]},"documentation":{"id":80227,"nodeType":"StructuredDocumentation","src":"9443:95:160","text":" @dev Functions marked with this modifier can only be called by the `Router`."},"name":"onlyRouter","nameLocation":"9552:10:160","parameters":{"id":80228,"nodeType":"ParameterList","parameters":[],"src":"9562:2:160"},"virtual":false,"visibility":"internal"},{"id":80248,"nodeType":"FunctionDefinition","src":"9698:102:160","nodes":[],"body":{"id":80247,"nodeType":"Block","src":"9735:65:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80239,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9753:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9757:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9753:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80241,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80111,"src":"9767:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9753:20:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80243,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77041,"src":"9775:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9775:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80238,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9745:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9745:48:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80246,"nodeType":"ExpressionStatement","src":"9745:48:160"}]},"documentation":{"id":80235,"nodeType":"StructuredDocumentation","src":"9612:81:160","text":" @dev Internal function to check if the caller is the `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"9707:11:160","parameters":{"id":80236,"nodeType":"ParameterList","parameters":[],"src":"9718:2:160"},"returnParameters":{"id":80237,"nodeType":"ParameterList","parameters":[],"src":"9735:0:160"},"scope":81675,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80256,"nodeType":"ModifierDefinition","src":"9922:69:160","nodes":[],"body":{"id":80255,"nodeType":"Block","src":"9947:44:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80251,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80272,"src":"9957:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9957:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80253,"nodeType":"ExpressionStatement","src":"9957:16:160"},{"id":80254,"nodeType":"PlaceholderStatement","src":"9983:1:160"}]},"documentation":{"id":80249,"nodeType":"StructuredDocumentation","src":"9806:111:160","text":" @dev Functions marked with this modifier can only be called when the `Router` is not paused."},"name":"whenNotPaused","nameLocation":"9931:13:160","parameters":{"id":80250,"nodeType":"ParameterList","parameters":[],"src":"9944:2:160"},"virtual":false,"visibility":"internal"},{"id":80272,"nodeType":"FunctionDefinition","src":"10083:108:160","nodes":[],"body":{"id":80271,"nodeType":"Block","src":"10123:68:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10141:25:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":80262,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80111,"src":"10150:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80261,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77796,"src":"10142:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$77796_$","typeString":"type(contract IRouter)"}},"id":80263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10142:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77796","typeString":"contract IRouter"}},"id":80264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10158:6:160","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":77537,"src":"10142:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":80265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10142:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80267,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77044,"src":"10168:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10168:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10133:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10133:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80270,"nodeType":"ExpressionStatement","src":"10133:51:160"}]},"documentation":{"id":80257,"nodeType":"StructuredDocumentation","src":"9997:81:160","text":" @dev Internal function to check if the `Router` is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"10092:14:160","parameters":{"id":80258,"nodeType":"ParameterList","parameters":[],"src":"10106:2:160"},"returnParameters":{"id":80259,"nodeType":"ParameterList","parameters":[],"src":"10123:0:160"},"scope":81675,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80283,"nodeType":"ModifierDefinition","src":"10329:89:160","nodes":[],"body":{"id":80282,"nodeType":"Block","src":"10368:50:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80278,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80275,"src":"10394:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80277,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80313,"src":"10378:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10378:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80280,"nodeType":"ExpressionStatement","src":"10378:22:160"},{"id":80281,"nodeType":"PlaceholderStatement","src":"10410:1:160"}]},"documentation":{"id":80273,"nodeType":"StructuredDocumentation","src":"10197:127:160","text":" @dev Non-zero Vara value must be transferred from source to `Router` in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"10338:14:160","parameters":{"id":80276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80275,"mutability":"mutable","name":"value","nameLocation":"10361:5:160","nodeType":"VariableDeclaration","scope":80283,"src":"10353:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80274,"name":"uint128","nodeType":"ElementaryTypeName","src":"10353:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10352:15:160"},"virtual":false,"visibility":"internal"},{"id":80313,"nodeType":"FunctionDefinition","src":"10527:228:160","nodes":[],"body":{"id":80312,"nodeType":"Block","src":"10576:179:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80286,"src":"10590:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10599:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10590:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80311,"nodeType":"IfStatement","src":"10586:163:160","trueBody":{"id":80310,"nodeType":"Block","src":"10602:147:160","statements":[{"assignments":[80293],"declarations":[{"constant":false,"id":80293,"mutability":"mutable","name":"success","nameLocation":"10621:7:160","nodeType":"VariableDeclaration","scope":80310,"src":"10616:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80292,"name":"bool","nodeType":"ElementaryTypeName","src":"10616:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80303,"initialValue":{"arguments":[{"expression":{"id":80298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10659:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10663:6:160","memberName":"sender","nodeType":"MemberAccess","src":"10659:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80300,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80111,"src":"10671:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80301,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80286,"src":"10679:5:160","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":80295,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80111,"src":"10638:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80294,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81583,"src":"10631:6:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$77812_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":80296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10631:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":80297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10646:12:160","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"10631:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10631:54:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10616:69:160"},{"expression":{"arguments":[{"id":80305,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80293,"src":"10707:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80306,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77047,"src":"10716:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80304,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10699:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10699:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80309,"nodeType":"ExpressionStatement","src":"10699:39:160"}]}}]},"documentation":{"id":80284,"nodeType":"StructuredDocumentation","src":"10424:98:160","text":" @dev Internal function to transfer non-zero Vara value from source to `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"10536:15:160","parameters":{"id":80287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80286,"mutability":"mutable","name":"value","nameLocation":"10560:5:160","nodeType":"VariableDeclaration","scope":80313,"src":"10552:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80285,"name":"uint128","nodeType":"ElementaryTypeName","src":"10552:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10551:15:160"},"returnParameters":{"id":80288,"nodeType":"ParameterList","parameters":[],"src":"10576:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":80340,"nodeType":"FunctionDefinition","src":"10894:215:160","nodes":[],"body":{"id":80339,"nodeType":"Block","src":"10944:165:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80319,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80316,"src":"10958:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10967:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10958:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80338,"nodeType":"IfStatement","src":"10954:149:160","trueBody":{"id":80337,"nodeType":"Block","src":"10970:133:160","statements":[{"assignments":[80323,null],"declarations":[{"constant":false,"id":80323,"mutability":"mutable","name":"success","nameLocation":"10990:7:160","nodeType":"VariableDeclaration","scope":80337,"src":"10985:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80322,"name":"bool","nodeType":"ElementaryTypeName","src":"10985:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":80330,"initialValue":{"arguments":[{"hexValue":"","id":80328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11028:2:160","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":80324,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80111,"src":"11002:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11009:4:160","memberName":"call","nodeType":"MemberAccess","src":"11002:11:160","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":80327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":80326,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80316,"src":"11021:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"11002:25:160","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":80329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11002:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"10984:47:160"},{"expression":{"arguments":[{"id":80332,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80323,"src":"11053:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80333,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77050,"src":"11062:27:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11062:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80331,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11045:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11045:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80336,"nodeType":"ExpressionStatement","src":"11045:47:160"}]}}]},"documentation":{"id":80314,"nodeType":"StructuredDocumentation","src":"10761:128:160","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":"10903:16:160","parameters":{"id":80317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80316,"mutability":"mutable","name":"value","nameLocation":"10928:5:160","nodeType":"VariableDeclaration","scope":80340,"src":"10920:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80315,"name":"uint128","nodeType":"ElementaryTypeName","src":"10920:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10919:15:160"},"returnParameters":{"id":80318,"nodeType":"ParameterList","parameters":[],"src":"10944:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":80358,"nodeType":"FunctionDefinition","src":"11494:216:160","nodes":[],"body":{"id":80357,"nodeType":"Block","src":"11652:58:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":80353,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80343,"src":"11682:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":80354,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80345,"src":"11692:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80352,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"11669:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":80355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11669:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80351,"id":80356,"nodeType":"Return","src":"11662:41:160"}]},"baseFunctions":[77111],"documentation":{"id":80341,"nodeType":"StructuredDocumentation","src":"11164:325:160","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":80348,"kind":"modifierInvocation","modifierName":{"id":80347,"name":"whenNotPaused","nameLocations":["11598:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80256,"src":"11598:13:160"},"nodeType":"ModifierInvocation","src":"11598:13:160"}],"name":"sendMessage","nameLocation":"11503:11:160","parameters":{"id":80346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80343,"mutability":"mutable","name":"_payload","nameLocation":"11530:8:160","nodeType":"VariableDeclaration","scope":80358,"src":"11515:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80342,"name":"bytes","nodeType":"ElementaryTypeName","src":"11515:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80345,"mutability":"mutable","name":"_callReply","nameLocation":"11545:10:160","nodeType":"VariableDeclaration","scope":80358,"src":"11540:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80344,"name":"bool","nodeType":"ElementaryTypeName","src":"11540:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11514:42:160"},"returnParameters":{"id":80351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80350,"mutability":"mutable","name":"messageId","nameLocation":"11637:9:160","nodeType":"VariableDeclaration","scope":80358,"src":"11629:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11629:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11628:19:160"},"scope":81675,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":80393,"nodeType":"FunctionDefinition","src":"12251:340:160","nodes":[],"body":{"id":80392,"nodeType":"Block","src":"12424:167:160","nodes":[],"statements":[{"assignments":[80373],"declarations":[{"constant":false,"id":80373,"mutability":"mutable","name":"_value","nameLocation":"12442:6:160","nodeType":"VariableDeclaration","scope":80392,"src":"12434:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80372,"name":"uint128","nodeType":"ElementaryTypeName","src":"12434:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80379,"initialValue":{"arguments":[{"expression":{"id":80376,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12459:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12463:5:160","memberName":"value","nodeType":"MemberAccess","src":"12459:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12451:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80374,"name":"uint128","nodeType":"ElementaryTypeName","src":"12451:7:160","typeDescriptions":{}}},"id":80378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12451:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"12434:35:160"},{"expression":{"arguments":[{"id":80381,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80373,"src":"12497:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80380,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80340,"src":"12480:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12480:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80383,"nodeType":"ExpressionStatement","src":"12480:24:160"},{"eventCall":{"arguments":[{"id":80385,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80361,"src":"12543:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80386,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12555:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12559:6:160","memberName":"sender","nodeType":"MemberAccess","src":"12555:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80388,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80363,"src":"12567:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":80389,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80373,"src":"12577:6:160","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":80384,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76936,"src":"12520:22:160","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":80390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12520:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80391,"nodeType":"EmitStatement","src":"12515:69:160"}]},"baseFunctions":[77119],"documentation":{"id":80359,"nodeType":"StructuredDocumentation","src":"11716:530:160","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":80366,"kind":"modifierInvocation","modifierName":{"id":80365,"name":"whenNotPaused","nameLocations":["12356:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80256,"src":"12356:13:160"},"nodeType":"ModifierInvocation","src":"12356:13:160"},{"id":80368,"kind":"modifierInvocation","modifierName":{"id":80367,"name":"onlyIfActive","nameLocations":["12378:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80195,"src":"12378:12:160"},"nodeType":"ModifierInvocation","src":"12378:12:160"},{"id":80370,"kind":"modifierInvocation","modifierName":{"id":80369,"name":"onlyAfterInitMessage","nameLocations":["12399:20:160"],"nodeType":"IdentifierPath","referencedDeclaration":80148,"src":"12399:20:160"},"nodeType":"ModifierInvocation","src":"12399:20:160"}],"name":"sendReply","nameLocation":"12260:9:160","parameters":{"id":80364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80361,"mutability":"mutable","name":"_repliedTo","nameLocation":"12278:10:160","nodeType":"VariableDeclaration","scope":80393,"src":"12270:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12270:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80363,"mutability":"mutable","name":"_payload","nameLocation":"12305:8:160","nodeType":"VariableDeclaration","scope":80393,"src":"12290:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80362,"name":"bytes","nodeType":"ElementaryTypeName","src":"12290:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12269:45:160"},"returnParameters":{"id":80371,"nodeType":"ParameterList","parameters":[],"src":"12424:0:160"},"scope":81675,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":80412,"nodeType":"FunctionDefinition","src":"12881:165:160","nodes":[],"body":{"id":80411,"nodeType":"Block","src":"12978:68:160","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":80406,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80396,"src":"13016:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80407,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13028:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13032:6:160","memberName":"sender","nodeType":"MemberAccess","src":"13028:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":80405,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76943,"src":"12993:22:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":80409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12993:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80410,"nodeType":"EmitStatement","src":"12988:51:160"}]},"baseFunctions":[77125],"documentation":{"id":80394,"nodeType":"StructuredDocumentation","src":"12664:212:160","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":80399,"kind":"modifierInvocation","modifierName":{"id":80398,"name":"whenNotPaused","nameLocations":["12930:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80256,"src":"12930:13:160"},"nodeType":"ModifierInvocation","src":"12930:13:160"},{"id":80401,"kind":"modifierInvocation","modifierName":{"id":80400,"name":"onlyIfActive","nameLocations":["12944:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80195,"src":"12944:12:160"},"nodeType":"ModifierInvocation","src":"12944:12:160"},{"id":80403,"kind":"modifierInvocation","modifierName":{"id":80402,"name":"onlyAfterInitMessage","nameLocations":["12957:20:160"],"nodeType":"IdentifierPath","referencedDeclaration":80148,"src":"12957:20:160"},"nodeType":"ModifierInvocation","src":"12957:20:160"}],"name":"claimValue","nameLocation":"12890:10:160","parameters":{"id":80397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80396,"mutability":"mutable","name":"_claimedId","nameLocation":"12909:10:160","nodeType":"VariableDeclaration","scope":80412,"src":"12901:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12901:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12900:20:160"},"returnParameters":{"id":80404,"nodeType":"ParameterList","parameters":[],"src":"12978:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80430,"nodeType":"FunctionDefinition","src":"13347:168:160","nodes":[],"body":{"id":80429,"nodeType":"Block","src":"13454:61:160","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":80426,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80415,"src":"13501:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80425,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"13469:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13469:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80428,"nodeType":"EmitStatement","src":"13464:44:160"}]},"baseFunctions":[77131],"documentation":{"id":80413,"nodeType":"StructuredDocumentation","src":"13052:290:160","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":80418,"kind":"modifierInvocation","modifierName":{"id":80417,"name":"whenNotPaused","nameLocations":["13404:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80256,"src":"13404:13:160"},"nodeType":"ModifierInvocation","src":"13404:13:160"},{"id":80420,"kind":"modifierInvocation","modifierName":{"id":80419,"name":"onlyIfActive","nameLocations":["13418:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80195,"src":"13418:12:160"},"nodeType":"ModifierInvocation","src":"13418:12:160"},{"arguments":[{"id":80422,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80415,"src":"13446:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":80423,"kind":"modifierInvocation","modifierName":{"id":80421,"name":"retrievingVara","nameLocations":["13431:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":80283,"src":"13431:14:160"},"nodeType":"ModifierInvocation","src":"13431:22:160"}],"name":"executableBalanceTopUp","nameLocation":"13356:22:160","parameters":{"id":80416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80415,"mutability":"mutable","name":"_value","nameLocation":"13387:6:160","nodeType":"VariableDeclaration","scope":80430,"src":"13379:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80414,"name":"uint128","nodeType":"ElementaryTypeName","src":"13379:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13378:16:160"},"returnParameters":{"id":80424,"nodeType":"ParameterList","parameters":[],"src":"13454:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80478,"nodeType":"FunctionDefinition","src":"14222:374:160","nodes":[],"body":{"id":80477,"nodeType":"Block","src":"14397:199:160","nodes":[],"statements":[{"clauses":[{"block":{"id":80464,"nodeType":"Block","src":"14491:2:160","statements":[]},"errorName":"","id":80465,"nodeType":"TryCatchClause","src":"14491:2:160"},{"block":{"id":80466,"nodeType":"Block","src":"14500:2:160","statements":[]},"errorName":"","id":80467,"nodeType":"TryCatchClause","src":"14494:8:160"}],"externalCall":{"arguments":[{"expression":{"id":80452,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14433:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14437:6:160","memberName":"sender","nodeType":"MemberAccess","src":"14433:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80456,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14453:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$81675","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$81675","typeString":"contract Mirror"}],"id":80455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14445:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80454,"name":"address","nodeType":"ElementaryTypeName","src":"14445:7:160","typeDescriptions":{}}},"id":80457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14445:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80458,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80433,"src":"14460:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":80459,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"14468:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80460,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80437,"src":"14479:2:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80461,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80439,"src":"14483:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80462,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80441,"src":"14487:2:160","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":80449,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80111,"src":"14418:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80448,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81583,"src":"14411:6:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$77812_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":80450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14411:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":80451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14426:6:160","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"14411:21:160","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":80463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14411:79:160","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80468,"nodeType":"TryStatement","src":"14407:95:160"},{"expression":{"arguments":[{"id":80470,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80433,"src":"14527:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80469,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80313,"src":"14511:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14511:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80472,"nodeType":"ExpressionStatement","src":"14511:23:160"},{"eventCall":{"arguments":[{"id":80474,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80433,"src":"14582:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80473,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"14550:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14550:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80476,"nodeType":"EmitStatement","src":"14545:44:160"}]},"baseFunctions":[77145],"documentation":{"id":80431,"nodeType":"StructuredDocumentation","src":"13521:696:160","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":80444,"kind":"modifierInvocation","modifierName":{"id":80443,"name":"whenNotPaused","nameLocations":["14358:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80256,"src":"14358:13:160"},"nodeType":"ModifierInvocation","src":"14358:13:160"},{"id":80446,"kind":"modifierInvocation","modifierName":{"id":80445,"name":"onlyIfActive","nameLocations":["14380:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80195,"src":"14380:12:160"},"nodeType":"ModifierInvocation","src":"14380:12:160"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"14231:32:160","parameters":{"id":80442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80433,"mutability":"mutable","name":"_value","nameLocation":"14272:6:160","nodeType":"VariableDeclaration","scope":80478,"src":"14264:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80432,"name":"uint128","nodeType":"ElementaryTypeName","src":"14264:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80435,"mutability":"mutable","name":"_deadline","nameLocation":"14288:9:160","nodeType":"VariableDeclaration","scope":80478,"src":"14280:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80434,"name":"uint256","nodeType":"ElementaryTypeName","src":"14280:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80437,"mutability":"mutable","name":"_v","nameLocation":"14305:2:160","nodeType":"VariableDeclaration","scope":80478,"src":"14299:8:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80436,"name":"uint8","nodeType":"ElementaryTypeName","src":"14299:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80439,"mutability":"mutable","name":"_r","nameLocation":"14317:2:160","nodeType":"VariableDeclaration","scope":80478,"src":"14309:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14309:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80441,"mutability":"mutable","name":"_s","nameLocation":"14329:2:160","nodeType":"VariableDeclaration","scope":80478,"src":"14321:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14321:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14263:69:160"},"returnParameters":{"id":80447,"nodeType":"ParameterList","parameters":[],"src":"14397:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80496,"nodeType":"FunctionDefinition","src":"14842:208:160","nodes":[],"body":{"id":80495,"nodeType":"Block","src":"14907:143:160","nodes":[],"statements":[{"assignments":[null,80485],"declarations":[null,{"constant":false,"id":80485,"mutability":"mutable","name":"success","nameLocation":"14925:7:160","nodeType":"VariableDeclaration","scope":80495,"src":"14920:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80484,"name":"bool","nodeType":"ElementaryTypeName","src":"14920:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80488,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80486,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80776,"src":"14936:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":80487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14936:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"14917:52:160"},{"expression":{"arguments":[{"id":80490,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80485,"src":"14987:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80491,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77053,"src":"14996:44:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14996:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14979:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14979:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80494,"nodeType":"ExpressionStatement","src":"14979:64:160"}]},"baseFunctions":[77149],"documentation":{"id":80479,"nodeType":"StructuredDocumentation","src":"14602:235:160","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":80482,"kind":"modifierInvocation","modifierName":{"id":80481,"name":"whenNotPaused","nameLocations":["14893:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80256,"src":"14893:13:160"},"nodeType":"ModifierInvocation","src":"14893:13:160"}],"name":"transferLockedValueToInheritor","nameLocation":"14851:30:160","parameters":{"id":80480,"nodeType":"ParameterList","parameters":[],"src":"14881:2:160"},"returnParameters":{"id":80483,"nodeType":"ParameterList","parameters":[],"src":"14907:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80575,"nodeType":"FunctionDefinition","src":"16048:749:160","nodes":[],"body":{"id":80574,"nodeType":"Block","src":"16203:594:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80511,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80126,"src":"16221:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16244: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":80513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16236:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80512,"name":"address","nodeType":"ElementaryTypeName","src":"16236:7:160","typeDescriptions":{}}},"id":80515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16236:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16221:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80517,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77055,"src":"16248:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16248:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80510,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16213:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16213:59:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80520,"nodeType":"ExpressionStatement","src":"16213:59:160"},{"expression":{"arguments":[{"id":80523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16291:8:160","subExpression":{"id":80522,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80129,"src":"16292:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80524,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77057,"src":"16301:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16301:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80521,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16283:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16283:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80527,"nodeType":"ExpressionStatement","src":"16283:38:160"},{"assignments":[80532],"declarations":[{"constant":false,"id":80532,"mutability":"mutable","name":"implementationSlot","nameLocation":"16364:18:160","nodeType":"VariableDeclaration","scope":80574,"src":"16332:50:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":80531,"nodeType":"UserDefinedTypeName","pathNode":{"id":80530,"name":"StorageSlot.AddressSlot","nameLocations":["16332:11:160","16344:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":6730,"src":"16332:23:160"},"referencedDeclaration":6730,"src":"16332:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":80538,"initialValue":{"arguments":[{"expression":{"id":80535,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"16424:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$1269_$","typeString":"type(library ERC1967Utils)"}},"id":80536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16437:19:160","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":990,"src":"16424:32:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80533,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"16397:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":80534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16409:14:160","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":6759,"src":"16397:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6730_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":80537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16397:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16332:125:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80540,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80532,"src":"16476:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":80541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16495:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6729,"src":"16476:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16512: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":80543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16504:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80542,"name":"address","nodeType":"ElementaryTypeName","src":"16504:7:160","typeDescriptions":{}}},"id":80545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16504:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16476:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80547,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77059,"src":"16516:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16516:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80539,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16468:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:73:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80550,"nodeType":"ExpressionStatement","src":"16468:73:160"},{"expression":{"id":80553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80551,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80126,"src":"16552:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80552,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80499,"src":"16566:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16552:26:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80554,"nodeType":"ExpressionStatement","src":"16552:26:160"},{"expression":{"id":80557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80555,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80129,"src":"16588:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80556,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80503,"src":"16598:8:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16588:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80558,"nodeType":"ExpressionStatement","src":"16588:18:160"},{"expression":{"id":80563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80559,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80532,"src":"16616:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":80561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16635:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6729,"src":"16616:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80562,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80501,"src":"16643:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16616:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80564,"nodeType":"ExpressionStatement","src":"16616:40:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80565,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80505,"src":"16671:25:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16700:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16671:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80573,"nodeType":"IfStatement","src":"16667:124:160","trueBody":{"id":80572,"nodeType":"Block","src":"16703:88:160","statements":[{"eventCall":{"arguments":[{"id":80569,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80505,"src":"16754:25:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80568,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"16722:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16722:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80571,"nodeType":"EmitStatement","src":"16717:63:160"}]}}]},"baseFunctions":[77161],"documentation":{"id":80497,"nodeType":"StructuredDocumentation","src":"15110:933:160","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":80508,"kind":"modifierInvocation","modifierName":{"id":80507,"name":"onlyRouter","nameLocations":["16188:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":80234,"src":"16188:10:160"},"nodeType":"ModifierInvocation","src":"16188:10:160"}],"name":"initialize","nameLocation":"16057:10:160","parameters":{"id":80506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80499,"mutability":"mutable","name":"_initializer","nameLocation":"16076:12:160","nodeType":"VariableDeclaration","scope":80575,"src":"16068:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80498,"name":"address","nodeType":"ElementaryTypeName","src":"16068:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80501,"mutability":"mutable","name":"_abiInterface","nameLocation":"16098:13:160","nodeType":"VariableDeclaration","scope":80575,"src":"16090:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80500,"name":"address","nodeType":"ElementaryTypeName","src":"16090:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80503,"mutability":"mutable","name":"_isSmall","nameLocation":"16118:8:160","nodeType":"VariableDeclaration","scope":80575,"src":"16113:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80502,"name":"bool","nodeType":"ElementaryTypeName","src":"16113:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":80505,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"16136:25:160","nodeType":"VariableDeclaration","scope":80575,"src":"16128:33:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80504,"name":"uint128","nodeType":"ElementaryTypeName","src":"16128:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16067:95:160"},"returnParameters":{"id":80509,"nodeType":"ParameterList","parameters":[],"src":"16203:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80693,"nodeType":"FunctionDefinition","src":"17011:2154:160","nodes":[],"body":{"id":80692,"nodeType":"Block","src":"17183:1982:160","nodes":[],"statements":[{"documentation":" @dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80587,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"17294:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17306:7:160","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":86323,"src":"17294:19:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":80591,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17325:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$81675","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$81675","typeString":"contract Mirror"}],"id":80590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17317:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80589,"name":"address","nodeType":"ElementaryTypeName","src":"17317:7:160","typeDescriptions":{}}},"id":80592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17317:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17294:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80594,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77061,"src":"17332:14:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17332:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80586,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17286:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17286:63:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80597,"nodeType":"ExpressionStatement","src":"17286:63:160"},{"condition":{"expression":{"id":80598,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"17482:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17494:26:160","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":86338,"src":"17482:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":80606,"nodeType":"IfStatement","src":"17478:113:160","trueBody":{"id":80605,"nodeType":"Block","src":"17522:69:160","statements":[{"expression":{"arguments":[{"expression":{"id":80601,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"17553:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17565:14:160","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":86335,"src":"17553:26:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80600,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80340,"src":"17536:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17536:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80604,"nodeType":"ExpressionStatement","src":"17536:44:160"}]}},{"assignments":[80609],"declarations":[{"constant":false,"id":80609,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"17677:18:160","nodeType":"VariableDeclaration","scope":80692,"src":"17669:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17669:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":80614,"initialValue":{"arguments":[{"expression":{"id":80611,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"17712:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17724:8:160","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":86348,"src":"17712:20:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86280_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$86280_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":80610,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80874,"src":"17698:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$86280_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":80613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17698:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17669:64:160"},{"assignments":[80617],"declarations":[{"constant":false,"id":80617,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"17819:15:160","nodeType":"VariableDeclaration","scope":80692,"src":"17811:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17811:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send value for each claim.","id":80622,"initialValue":{"arguments":[{"expression":{"id":80619,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"17850:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17862:11:160","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":86343,"src":"17850:23:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86397_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86397_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":80618,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81166,"src":"17837:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$86397_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":80621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17837:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17811:63:160"},{"assignments":[80625],"declarations":[{"constant":false,"id":80625,"mutability":"mutable","name":"eventsHashesHash","nameLocation":"17985:16:160","nodeType":"VariableDeclaration","scope":80692,"src":"17977:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17977:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Emit Gear events (with `destination = address(0)`).","id":80630,"initialValue":{"arguments":[{"expression":{"id":80627,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18020:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18032:6:160","memberName":"events","nodeType":"MemberAccess","referencedDeclaration":86352,"src":"18020:18:160","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":80626,"name":"_emitGearEvents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81244,"src":"18004:15:160","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":80629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18004:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17977:62:160"},{"assignments":[80633],"declarations":[{"constant":false,"id":80633,"mutability":"mutable","name":"ethEventsHashesHash","nameLocation":"18158:19:160","nodeType":"VariableDeclaration","scope":80692,"src":"18150:27:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18150:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Emit Ethereum events (with `destination = ETH_EVENT_ADDR`).","id":80638,"initialValue":{"arguments":[{"expression":{"id":80635,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18195:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18207:9:160","memberName":"ethEvents","nodeType":"MemberAccess","referencedDeclaration":86356,"src":"18195:21:160","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":80634,"name":"_emitEthEvents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81322,"src":"18180:14:160","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":80637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18180:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18150:67:160"},{"condition":{"expression":{"id":80639,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18297:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18309:6:160","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":86329,"src":"18297:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":80659,"nodeType":"Block","src":"18384:92:160","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80648,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18406:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18418:9:160","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":86332,"src":"18406:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18439: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":80651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18431:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80650,"name":"address","nodeType":"ElementaryTypeName","src":"18431:7:160","typeDescriptions":{}}},"id":80653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18431:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18406:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80655,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77063,"src":"18443:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18443:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18398:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18398:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80658,"nodeType":"ExpressionStatement","src":"18398:67:160"}]},"id":80660,"nodeType":"IfStatement","src":"18293:183:160","trueBody":{"id":80646,"nodeType":"Block","src":"18317:61:160","statements":[{"expression":{"arguments":[{"expression":{"id":80642,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18345:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18357:9:160","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":86332,"src":"18345:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80641,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81546,"src":"18331:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":80644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80645,"nodeType":"ExpressionStatement","src":"18331:36:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80661,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80114,"src":"18564:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80662,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18577:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18589:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":86326,"src":"18577:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18564:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Update the state hash if changed.","id":80671,"nodeType":"IfStatement","src":"18560:110:160","trueBody":{"id":80670,"nodeType":"Block","src":"18603:67:160","statements":[{"expression":{"arguments":[{"expression":{"id":80666,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18634:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18646:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":86326,"src":"18634:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80665,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81561,"src":"18617:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18617:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80669,"nodeType":"ExpressionStatement","src":"18617:42:160"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":80674,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18808:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18820:7:160","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":86323,"src":"18808:19:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80676,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18841:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18853:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":86326,"src":"18841:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80678,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18879:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18891:6:160","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":86329,"src":"18879:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":80680,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18911:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18923:9:160","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":86332,"src":"18911:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80682,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18946:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:14:160","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":86335,"src":"18946:26:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":80684,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"18986:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18998:26:160","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":86338,"src":"18986:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":80686,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80617,"src":"19038:15:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80687,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80609,"src":"19067:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80688,"name":"eventsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80625,"src":"19099:16:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80689,"name":"ethEventsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80633,"src":"19129:19:160","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":80672,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"18770:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":80673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18775:19:160","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":86651,"src":"18770:24:160","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":80690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18770:388:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80585,"id":80691,"nodeType":"Return","src":"18763:395:160"}]},"baseFunctions":[77170],"documentation":{"id":80576,"nodeType":"StructuredDocumentation","src":"16803:203:160","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":80582,"kind":"modifierInvocation","modifierName":{"id":80581,"name":"onlyRouter","nameLocations":["17127:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":80234,"src":"17127:10:160"},"nodeType":"ModifierInvocation","src":"17127:10:160"}],"name":"performStateTransition","nameLocation":"17020:22:160","parameters":{"id":80580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80579,"mutability":"mutable","name":"_transition","nameLocation":"17073:11:160","nodeType":"VariableDeclaration","scope":80693,"src":"17043:41:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":80578,"nodeType":"UserDefinedTypeName","pathNode":{"id":80577,"name":"Gear.StateTransition","nameLocations":["17043:4:160","17048:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":86357,"src":"17043:20:160"},"referencedDeclaration":86357,"src":"17043:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"17042:43:160"},"returnParameters":{"id":80585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80584,"mutability":"mutable","name":"transitionHash","nameLocation":"17163:14:160","nodeType":"VariableDeclaration","scope":80693,"src":"17155:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17155:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17154:24:160"},"scope":81675,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":80743,"nodeType":"FunctionDefinition","src":"19598:760:160","nodes":[],"body":{"id":80742,"nodeType":"Block","src":"19781:577:160","nodes":[],"statements":[{"assignments":[80708],"declarations":[{"constant":false,"id":80708,"mutability":"mutable","name":"_value","nameLocation":"19799:6:160","nodeType":"VariableDeclaration","scope":80742,"src":"19791:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80707,"name":"uint128","nodeType":"ElementaryTypeName","src":"19791:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80714,"initialValue":{"arguments":[{"expression":{"id":80711,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19816:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19820:5:160","memberName":"value","nodeType":"MemberAccess","src":"19816:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19808:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80709,"name":"uint128","nodeType":"ElementaryTypeName","src":"19808:7:160","typeDescriptions":{}}},"id":80713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19808:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"19791:35:160"},{"expression":{"arguments":[{"id":80716,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80708,"src":"19854:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80715,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80340,"src":"19837:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19837:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80718,"nodeType":"ExpressionStatement","src":"19837:24:160"},{"assignments":[80720],"declarations":[{"constant":false,"id":80720,"mutability":"mutable","name":"_nonce","nameLocation":"19880:6:160","nodeType":"VariableDeclaration","scope":80742,"src":"19872:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80719,"name":"uint256","nodeType":"ElementaryTypeName","src":"19872:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80722,"initialValue":{"id":80721,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80117,"src":"19889:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19872:22:160"},{"assignments":[80725],"declarations":[{"constant":false,"id":80725,"mutability":"mutable","name":"id","nameLocation":"20063:2:160","nodeType":"VariableDeclaration","scope":80742,"src":"20055:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20055:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate unique message ID by formula:\n - `keccak256(abi.encodePacked(address(this), nonce++))`","id":80726,"nodeType":"VariableDeclarationStatement","src":"20055:10:160"},{"AST":{"nativeSrc":"20100:129:160","nodeType":"YulBlock","src":"20100:129:160","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20121:4:160","nodeType":"YulLiteral","src":"20121:4:160","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"20131:2:160","nodeType":"YulLiteral","src":"20131:2:160","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"20135:7:160","nodeType":"YulIdentifier","src":"20135:7:160"},"nativeSrc":"20135:9:160","nodeType":"YulFunctionCall","src":"20135:9:160"}],"functionName":{"name":"shl","nativeSrc":"20127:3:160","nodeType":"YulIdentifier","src":"20127:3:160"},"nativeSrc":"20127:18:160","nodeType":"YulFunctionCall","src":"20127:18:160"}],"functionName":{"name":"mstore","nativeSrc":"20114:6:160","nodeType":"YulIdentifier","src":"20114:6:160"},"nativeSrc":"20114:32:160","nodeType":"YulFunctionCall","src":"20114:32:160"},"nativeSrc":"20114:32:160","nodeType":"YulExpressionStatement","src":"20114:32:160"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20166:4:160","nodeType":"YulLiteral","src":"20166:4:160","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"20172:6:160","nodeType":"YulIdentifier","src":"20172:6:160"}],"functionName":{"name":"mstore","nativeSrc":"20159:6:160","nodeType":"YulIdentifier","src":"20159:6:160"},"nativeSrc":"20159:20:160","nodeType":"YulFunctionCall","src":"20159:20:160"},"nativeSrc":"20159:20:160","nodeType":"YulExpressionStatement","src":"20159:20:160"},{"nativeSrc":"20192:27:160","nodeType":"YulAssignment","src":"20192:27:160","value":{"arguments":[{"kind":"number","nativeSrc":"20208:4:160","nodeType":"YulLiteral","src":"20208:4:160","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20214:4:160","nodeType":"YulLiteral","src":"20214:4:160","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"20198:9:160","nodeType":"YulIdentifier","src":"20198:9:160"},"nativeSrc":"20198:21:160","nodeType":"YulFunctionCall","src":"20198:21:160"},"variableNames":[{"name":"id","nativeSrc":"20192:2:160","nodeType":"YulIdentifier","src":"20192:2:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80720,"isOffset":false,"isSlot":false,"src":"20172:6:160","valueSize":1},{"declaration":80725,"isOffset":false,"isSlot":false,"src":"20192:2:160","valueSize":1}],"flags":["memory-safe"],"id":80727,"nodeType":"InlineAssembly","src":"20075:154:160"},{"expression":{"id":80729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20238:7:160","subExpression":{"id":80728,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80117,"src":"20238:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80730,"nodeType":"ExpressionStatement","src":"20238:7:160"},{"eventCall":{"arguments":[{"id":80732,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"20286:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80733,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20290:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20294:6:160","memberName":"sender","nodeType":"MemberAccess","src":"20290:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80735,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80696,"src":"20302:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":80736,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80708,"src":"20312:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":80737,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80698,"src":"20320:10:160","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":80731,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76925,"src":"20261:24:160","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":80738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20261:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80739,"nodeType":"EmitStatement","src":"20256:75:160"},{"expression":{"id":80740,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"20349:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80706,"id":80741,"nodeType":"Return","src":"20342:9:160"}]},"documentation":{"id":80694,"nodeType":"StructuredDocumentation","src":"19229:364:160","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":80701,"kind":"modifierInvocation","modifierName":{"id":80700,"name":"onlyIfActive","nameLocations":["19686:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80195,"src":"19686:12:160"},"nodeType":"ModifierInvocation","src":"19686:12:160"},{"id":80703,"kind":"modifierInvocation","modifierName":{"id":80702,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["19707:33:160"],"nodeType":"IdentifierPath","referencedDeclaration":80169,"src":"19707:33:160"},"nodeType":"ModifierInvocation","src":"19707:33:160"}],"name":"_sendMessage","nameLocation":"19607:12:160","parameters":{"id":80699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80696,"mutability":"mutable","name":"_payload","nameLocation":"19635:8:160","nodeType":"VariableDeclaration","scope":80743,"src":"19620:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80695,"name":"bytes","nodeType":"ElementaryTypeName","src":"19620:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80698,"mutability":"mutable","name":"_callReply","nameLocation":"19650:10:160","nodeType":"VariableDeclaration","scope":80743,"src":"19645:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80697,"name":"bool","nodeType":"ElementaryTypeName","src":"19645:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19619:42:160"},"returnParameters":{"id":80706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80705,"mutability":"mutable","name":"messageId","nameLocation":"19766:9:160","nodeType":"VariableDeclaration","scope":80743,"src":"19758:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19758:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19757:19:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80776,"nodeType":"FunctionDefinition","src":"20687:470:160","nodes":[],"body":{"id":80775,"nodeType":"Block","src":"20836:321:160","nodes":[],"statements":[{"assignments":[80754],"declarations":[{"constant":false,"id":80754,"mutability":"mutable","name":"balance","nameLocation":"20854:7:160","nodeType":"VariableDeclaration","scope":80775,"src":"20846:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80753,"name":"uint256","nodeType":"ElementaryTypeName","src":"20846:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80760,"initialValue":{"expression":{"arguments":[{"id":80757,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20872:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$81675","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$81675","typeString":"contract Mirror"}],"id":80756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20864:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80755,"name":"address","nodeType":"ElementaryTypeName","src":"20864:7:160","typeDescriptions":{}}},"id":80758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20864:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20878:7:160","memberName":"balance","nodeType":"MemberAccess","src":"20864:21:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20846:39:160"},{"assignments":[80762],"declarations":[{"constant":false,"id":80762,"mutability":"mutable","name":"balance128","nameLocation":"21053:10:160","nodeType":"VariableDeclaration","scope":80775,"src":"21045:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80761,"name":"uint128","nodeType":"ElementaryTypeName","src":"21045:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80767,"initialValue":{"arguments":[{"id":80765,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80754,"src":"21074:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21066:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80763,"name":"uint128","nodeType":"ElementaryTypeName","src":"21066:7:160","typeDescriptions":{}}},"id":80766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21066:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"21045:37:160"},{"expression":{"components":[{"id":80768,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80762,"src":"21100:10:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":80770,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80123,"src":"21127:9:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80771,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80762,"src":"21138:10:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80769,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81613,"src":"21112:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":80772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21112:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80773,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21099:51:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":80752,"id":80774,"nodeType":"Return","src":"21092:58:160"}]},"documentation":{"id":80744,"nodeType":"StructuredDocumentation","src":"20364:318:160","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":80747,"kind":"modifierInvocation","modifierName":{"id":80746,"name":"onlyIfExited","nameLocations":["20754:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80215,"src":"20754:12:160"},"nodeType":"ModifierInvocation","src":"20754:12:160"}],"name":"_transferLockedValueToInheritor","nameLocation":"20696:31:160","parameters":{"id":80745,"nodeType":"ParameterList","parameters":[],"src":"20727:2:160"},"returnParameters":{"id":80752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80749,"mutability":"mutable","name":"valueTransferred","nameLocation":"20792:16:160","nodeType":"VariableDeclaration","scope":80776,"src":"20784:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80748,"name":"uint128","nodeType":"ElementaryTypeName","src":"20784:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80751,"mutability":"mutable","name":"transferSuccess","nameLocation":"20815:15:160","nodeType":"VariableDeclaration","scope":80776,"src":"20810:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80750,"name":"bool","nodeType":"ElementaryTypeName","src":"20810:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20783:48:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80874,"nodeType":"FunctionDefinition","src":"21725:1232:160","nodes":[],"body":{"id":80873,"nodeType":"Block","src":"21809:1148:160","nodes":[],"statements":[{"assignments":[80787],"declarations":[{"constant":false,"id":80787,"mutability":"mutable","name":"messagesLen","nameLocation":"21827:11:160","nodeType":"VariableDeclaration","scope":80873,"src":"21819:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80786,"name":"uint256","nodeType":"ElementaryTypeName","src":"21819:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80790,"initialValue":{"expression":{"id":80788,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80781,"src":"21841:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86280_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":80789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21851:6:160","memberName":"length","nodeType":"MemberAccess","src":"21841:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21819:38:160"},{"assignments":[80792],"declarations":[{"constant":false,"id":80792,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"21875:18:160","nodeType":"VariableDeclaration","scope":80873,"src":"21867:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80791,"name":"uint256","nodeType":"ElementaryTypeName","src":"21867:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80796,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80793,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80787,"src":"21896:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":80794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21910:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21896:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21867:45:160"},{"assignments":[80798],"declarations":[{"constant":false,"id":80798,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"21930:20:160","nodeType":"VariableDeclaration","scope":80873,"src":"21922:28:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80797,"name":"uint256","nodeType":"ElementaryTypeName","src":"21922:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80803,"initialValue":{"arguments":[{"id":80801,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80792,"src":"21969:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80799,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"21953:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":80800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21960:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"21953:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":80802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21953:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21922:66:160"},{"assignments":[80805],"declarations":[{"constant":false,"id":80805,"mutability":"mutable","name":"offset","nameLocation":"22006:6:160","nodeType":"VariableDeclaration","scope":80873,"src":"21998:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80804,"name":"uint256","nodeType":"ElementaryTypeName","src":"21998:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80807,"initialValue":{"hexValue":"30","id":80806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22015:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21998:18:160"},{"body":{"id":80864,"nodeType":"Block","src":"22069:785:160","statements":[{"assignments":[80822],"declarations":[{"constant":false,"id":80822,"mutability":"mutable","name":"message","nameLocation":"22105:7:160","nodeType":"VariableDeclaration","scope":80864,"src":"22083:29:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80821,"nodeType":"UserDefinedTypeName","pathNode":{"id":80820,"name":"Gear.Message","nameLocations":["22083:4:160","22088:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":86280,"src":"22083:12:160"},"referencedDeclaration":86280,"src":"22083:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":80826,"initialValue":{"baseExpression":{"id":80823,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80781,"src":"22115:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86280_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":80825,"indexExpression":{"id":80824,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80809,"src":"22125:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22115:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"22083:44:160"},{"assignments":[80829],"declarations":[{"constant":false,"id":80829,"mutability":"mutable","name":"messageHash","nameLocation":"22233:11:160","nodeType":"VariableDeclaration","scope":80864,"src":"22225:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22225:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":80834,"initialValue":{"arguments":[{"id":80832,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"22264:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":80830,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"22247:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":80831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22252:11:160","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":86586,"src":"22247:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$86280_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":80833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22247:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22225:47:160"},{"documentation":" @dev Store the message hash in memory at messagesHashes[offset : offset+32].","expression":{"arguments":[{"id":80838,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80798,"src":"22436:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80839,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80805,"src":"22458:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80840,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80829,"src":"22466:11:160","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":80835,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"22410:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":80837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22417:18:160","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"22410:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":80841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22410:68:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80842,"nodeType":"ExpressionStatement","src":"22410:68:160"},{"id":80847,"nodeType":"UncheckedBlock","src":"22492:55:160","statements":[{"expression":{"id":80845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80843,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80805,"src":"22520:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":80844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22530:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22520:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80846,"nodeType":"ExpressionStatement","src":"22520:12:160"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80848,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"22686:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22694:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86276,"src":"22686:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22707:2:160","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":86315,"src":"22686:23:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22713:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22686:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Send the message based on its type (`Gear.Message` or `Gear.Reply`).","falseBody":{"id":80862,"nodeType":"Block","src":"22785:59:160","statements":[{"expression":{"arguments":[{"id":80859,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"22821:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":80858,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81053,"src":"22803:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$86280_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":80860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22803:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80861,"nodeType":"ExpressionStatement","src":"22803:26:160"}]},"id":80863,"nodeType":"IfStatement","src":"22682:162:160","trueBody":{"id":80857,"nodeType":"Block","src":"22716:63:160","statements":[{"expression":{"arguments":[{"id":80854,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"22756:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":80853,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80922,"src":"22734:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$86280_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":80855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80856,"nodeType":"ExpressionStatement","src":"22734:30:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80812,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80809,"src":"22047:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":80813,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80787,"src":"22051:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22047:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80865,"initializationExpression":{"assignments":[80809],"declarations":[{"constant":false,"id":80809,"mutability":"mutable","name":"i","nameLocation":"22040:1:160","nodeType":"VariableDeclaration","scope":80865,"src":"22032:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80808,"name":"uint256","nodeType":"ElementaryTypeName","src":"22032:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80811,"initialValue":{"hexValue":"30","id":80810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22044:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22032:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22064:3:160","subExpression":{"id":80815,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80809,"src":"22064:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80817,"nodeType":"ExpressionStatement","src":"22064:3:160"},"nodeType":"ForStatement","src":"22027:827:160"},{"expression":{"arguments":[{"id":80868,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80798,"src":"22906:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":80869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22928:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":80870,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80792,"src":"22931:18:160","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":80866,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"22871:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":80867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22878:27:160","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"22871:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":80871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22871:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80785,"id":80872,"nodeType":"Return","src":"22864:86:160"}]},"documentation":{"id":80777,"nodeType":"StructuredDocumentation","src":"21427:293:160","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":"21734:13:160","parameters":{"id":80782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80781,"mutability":"mutable","name":"_messages","nameLocation":"21772:9:160","nodeType":"VariableDeclaration","scope":80874,"src":"21748:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86280_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":80779,"nodeType":"UserDefinedTypeName","pathNode":{"id":80778,"name":"Gear.Message","nameLocations":["21748:4:160","21753:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":86280,"src":"21748:12:160"},"referencedDeclaration":86280,"src":"21748:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_storage_ptr","typeString":"struct Gear.Message"}},"id":80780,"nodeType":"ArrayTypeName","src":"21748:14:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$86280_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"21747:35:160"},"returnParameters":{"id":80785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80874,"src":"21800:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21800:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21799:9:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80922,"nodeType":"FunctionDefinition","src":"23392:834:160","nodes":[],"body":{"id":80921,"nodeType":"Block","src":"23463:763:160","nodes":[],"statements":[{"condition":{"expression":{"id":80881,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"23715:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23724:4:160","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":86279,"src":"23715:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80909,"nodeType":"IfStatement","src":"23711:417:160","trueBody":{"id":80908,"nodeType":"Block","src":"23730:398:160","statements":[{"assignments":[80884,null],"declarations":[{"constant":false,"id":80884,"mutability":"mutable","name":"success","nameLocation":"23750:7:160","nodeType":"VariableDeclaration","scope":80908,"src":"23745:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80883,"name":"bool","nodeType":"ElementaryTypeName","src":"23745:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":80893,"initialValue":{"arguments":[{"expression":{"id":80890,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"23802:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23811:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86269,"src":"23802:16:160","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":80885,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"23762:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23771:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"23762:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23783:4:160","memberName":"call","nodeType":"MemberAccess","src":"23762:25:160","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":80889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":80888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23793:7:160","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"23762:39:160","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":80892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23762:57:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"23744:75:160"},{"condition":{"id":80895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23838:8:160","subExpression":{"id":80894,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80884,"src":"23839:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80907,"nodeType":"IfStatement","src":"23834:284:160","trueBody":{"id":80906,"nodeType":"Block","src":"23848:270:160","statements":[{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":80897,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"24029:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24038:2:160","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86263,"src":"24029:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80899,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"24042:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24051:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"24042:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80901,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"24064:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24073:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"24064:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80896,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76973,"src":"24011:17:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":80903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24011:68:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80904,"nodeType":"EmitStatement","src":"24006:73:160"},{"functionReturnParameters":80880,"id":80905,"nodeType":"Return","src":"24097:7:160"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":80911,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"24151:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24160:2:160","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86263,"src":"24151:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80913,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"24164:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24173:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"24164:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80915,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"24186:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24195:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86269,"src":"24186:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":80917,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"24204:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24213:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"24204:14:160","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":80910,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76964,"src":"24143:7:160","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":80919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24143:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80920,"nodeType":"EmitStatement","src":"24138:81:160"}]},"documentation":{"id":80875,"nodeType":"StructuredDocumentation","src":"22963:424:160","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":"23401:21:160","parameters":{"id":80879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80878,"mutability":"mutable","name":"_message","nameLocation":"23445:8:160","nodeType":"VariableDeclaration","scope":80922,"src":"23423:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80877,"nodeType":"UserDefinedTypeName","pathNode":{"id":80876,"name":"Gear.Message","nameLocations":["23423:4:160","23428:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":86280,"src":"23423:12:160"},"referencedDeclaration":86280,"src":"23423:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"23422:32:160"},"returnParameters":{"id":80880,"nodeType":"ParameterList","parameters":[],"src":"23463:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81053,"nodeType":"FunctionDefinition","src":"30193:1645:160","nodes":[],"body":{"id":81052,"nodeType":"Block","src":"30260:1578:160","nodes":[],"statements":[{"condition":{"expression":{"id":80929,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"30274:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30283:4:160","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":86279,"src":"30274:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81050,"nodeType":"Block","src":"31489:343:160","statements":[{"assignments":[81018],"declarations":[{"constant":false,"id":81018,"mutability":"mutable","name":"transferSuccess","nameLocation":"31508:15:160","nodeType":"VariableDeclaration","scope":81050,"src":"31503:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81017,"name":"bool","nodeType":"ElementaryTypeName","src":"31503:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81025,"initialValue":{"arguments":[{"expression":{"id":81020,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31541:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31550:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"31541:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81022,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31563:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31572:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"31563:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81019,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81613,"src":"31526:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":81024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31526:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31503:75:160"},{"condition":{"id":81027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31596:16:160","subExpression":{"id":81026,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81018,"src":"31597:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81036,"nodeType":"IfStatement","src":"31592:117:160","trueBody":{"id":81035,"nodeType":"Block","src":"31614:95:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":81029,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31657:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31666:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"31657:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81031,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31679:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31688:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"31679:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81028,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77019,"src":"31637:19:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31637:57:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81034,"nodeType":"EmitStatement","src":"31632:62:160"}]}},{"eventCall":{"arguments":[{"expression":{"id":81038,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31734:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31743:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86269,"src":"31734:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":81040,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31752:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31761:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"31752:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":81042,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31768:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31777:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86276,"src":"31768:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31790:2:160","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":86315,"src":"31768:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":81045,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31794:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31803:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86276,"src":"31794:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31816:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86318,"src":"31794:26:160","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":81037,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76984,"src":"31728:5:160","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":81048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31728:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81049,"nodeType":"EmitStatement","src":"31723:98:160"}]},"id":81051,"nodeType":"IfStatement","src":"30270:1562:160","trueBody":{"id":81016,"nodeType":"Block","src":"30289:1194:160","statements":[{"assignments":[80932],"declarations":[{"constant":false,"id":80932,"mutability":"mutable","name":"isSuccessReply","nameLocation":"30308:14:160","nodeType":"VariableDeclaration","scope":81016,"src":"30303:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80931,"name":"bool","nodeType":"ElementaryTypeName","src":"30303:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80940,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":80939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80933,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"30325:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30334:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86276,"src":"30325:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30347:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86318,"src":"30325:26:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":80937,"indexExpression":{"hexValue":"30","id":80936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30352:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30325:29:160","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30358:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30325:34:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30303:56:160"},{"assignments":[80942],"declarations":[{"constant":false,"id":80942,"mutability":"mutable","name":"payload","nameLocation":"30387:7:160","nodeType":"VariableDeclaration","scope":81016,"src":"30374:20:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":80941,"name":"bytes","nodeType":"ElementaryTypeName","src":"30374:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":80943,"nodeType":"VariableDeclarationStatement","src":"30374:20:160"},{"condition":{"id":80944,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80932,"src":"30413:14:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":80967,"nodeType":"Block","src":"30494:348:160","statements":[{"expression":{"id":80965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80951,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80942,"src":"30664:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":80954,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76513,"src":"30718:10:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$76513_$","typeString":"type(contract ICallbacks)"}},"id":80955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30729:12:160","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":76512,"src":"30718:23:160","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":80956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30742:8:160","memberName":"selector","nodeType":"MemberAccess","src":"30718:32:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":80957,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"30752:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30761:2:160","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86263,"src":"30752:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80959,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"30765:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30774:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86269,"src":"30765:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":80961,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"30783:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30792:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86276,"src":"30783:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30805:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86318,"src":"30783:26:160","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":80952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30674:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30678:18:160","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"30674:22:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":80964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30674:153:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"30664:163:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":80966,"nodeType":"ExpressionStatement","src":"30664:163:160"}]},"id":80968,"nodeType":"IfStatement","src":"30409:433:160","trueBody":{"id":80950,"nodeType":"Block","src":"30429:59:160","statements":[{"expression":{"id":80948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80945,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80942,"src":"30447:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":80946,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"30457:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30466:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":86269,"src":"30457:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"30447:26:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":80949,"nodeType":"ExpressionStatement","src":"30447:26:160"}]}},{"assignments":[80970,null],"declarations":[{"constant":false,"id":80970,"mutability":"mutable","name":"success","nameLocation":"30862:7:160","nodeType":"VariableDeclaration","scope":81016,"src":"30857:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80969,"name":"bool","nodeType":"ElementaryTypeName","src":"30857:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":80980,"initialValue":{"arguments":[{"id":80978,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80942,"src":"30937:7:160","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":80971,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"30874:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30883:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"30874:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30895:4:160","memberName":"call","nodeType":"MemberAccess","src":"30874:25:160","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":80977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":80974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30905:7:160","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":80975,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"30921:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30930:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"30921:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"30874:62:160","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":80979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30874:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"30856:89:160"},{"condition":{"id":80982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"30964:8:160","subExpression":{"id":80981,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80970,"src":"30965:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81015,"nodeType":"IfStatement","src":"30960:513:160","trueBody":{"id":81014,"nodeType":"Block","src":"30974:499:160","statements":[{"assignments":[80984],"declarations":[{"constant":false,"id":80984,"mutability":"mutable","name":"transferSuccess","nameLocation":"30997:15:160","nodeType":"VariableDeclaration","scope":81014,"src":"30992:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80983,"name":"bool","nodeType":"ElementaryTypeName","src":"30992:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80991,"initialValue":{"arguments":[{"expression":{"id":80986,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31030:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31039:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"31030:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80988,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31052:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31061:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"31052:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80985,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81613,"src":"31015:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":80990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31015:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30992:75:160"},{"condition":{"id":80993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31089:16:160","subExpression":{"id":80992,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80984,"src":"31090:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81002,"nodeType":"IfStatement","src":"31085:125:160","trueBody":{"id":81001,"nodeType":"Block","src":"31107:103:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":80995,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31154:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31163:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"31154:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80997,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31176:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31185:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"31176:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80994,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77019,"src":"31134:19:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":80999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31134:57:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81000,"nodeType":"EmitStatement","src":"31129:62:160"}]}},{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":81004,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31389:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31398:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86272,"src":"31389:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":81006,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31405:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31414:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86276,"src":"31405:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31427:2:160","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":86315,"src":"31405:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":81009,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"31431:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31440:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":86276,"src":"31431:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$86319_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31453:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":86318,"src":"31431:26:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":81003,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76993,"src":"31373:15:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":81012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31373:85:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81013,"nodeType":"EmitStatement","src":"31368:90:160"}]}}]}}]},"documentation":{"id":80923,"nodeType":"StructuredDocumentation","src":"24232:5956:160","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":"30202:17:160","parameters":{"id":80927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80926,"mutability":"mutable","name":"_message","nameLocation":"30242:8:160","nodeType":"VariableDeclaration","scope":81053,"src":"30220:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80925,"nodeType":"UserDefinedTypeName","pathNode":{"id":80924,"name":"Gear.Message","nameLocations":["30220:4:160","30225:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":86280,"src":"30220:12:160"},"referencedDeclaration":86280,"src":"30220:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$86280_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"30219:32:160"},"returnParameters":{"id":80928,"nodeType":"ParameterList","parameters":[],"src":"30260:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81166,"nodeType":"FunctionDefinition","src":"32376:1028:160","nodes":[],"body":{"id":81165,"nodeType":"Block","src":"32471:933:160","nodes":[],"statements":[{"assignments":[81064],"declarations":[{"constant":false,"id":81064,"mutability":"mutable","name":"claimsLen","nameLocation":"32489:9:160","nodeType":"VariableDeclaration","scope":81165,"src":"32481:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81063,"name":"uint256","nodeType":"ElementaryTypeName","src":"32481:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81067,"initialValue":{"expression":{"id":81065,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81058,"src":"32501:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86397_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":81066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32509:6:160","memberName":"length","nodeType":"MemberAccess","src":"32501:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32481:34:160"},{"assignments":[81069],"declarations":[{"constant":false,"id":81069,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"32533:16:160","nodeType":"VariableDeclaration","scope":81165,"src":"32525:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81068,"name":"uint256","nodeType":"ElementaryTypeName","src":"32525:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81073,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81070,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81064,"src":"32552:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32564:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"32552:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32525:41:160"},{"assignments":[81075],"declarations":[{"constant":false,"id":81075,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"32584:18:160","nodeType":"VariableDeclaration","scope":81165,"src":"32576:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81074,"name":"uint256","nodeType":"ElementaryTypeName","src":"32576:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81080,"initialValue":{"arguments":[{"id":81078,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81069,"src":"32621:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81076,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"32605:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32612:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"32605:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32605:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32576:62:160"},{"assignments":[81082],"declarations":[{"constant":false,"id":81082,"mutability":"mutable","name":"offset","nameLocation":"32656:6:160","nodeType":"VariableDeclaration","scope":81165,"src":"32648:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81081,"name":"uint256","nodeType":"ElementaryTypeName","src":"32648:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81084,"initialValue":{"hexValue":"30","id":81083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32665:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32648:18:160"},{"body":{"id":81156,"nodeType":"Block","src":"32717:588:160","statements":[{"assignments":[81099],"declarations":[{"constant":false,"id":81099,"mutability":"mutable","name":"claim","nameLocation":"32756:5:160","nodeType":"VariableDeclaration","scope":81156,"src":"32731:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":81098,"nodeType":"UserDefinedTypeName","pathNode":{"id":81097,"name":"Gear.ValueClaim","nameLocations":["32731:4:160","32736:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":86397,"src":"32731:15:160"},"referencedDeclaration":86397,"src":"32731:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":81103,"initialValue":{"baseExpression":{"id":81100,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81058,"src":"32764:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86397_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":81102,"indexExpression":{"id":81101,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81086,"src":"32772:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32764:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"32731:43:160"},{"assignments":[81105],"declarations":[{"constant":false,"id":81105,"mutability":"mutable","name":"claimHash","nameLocation":"32796:9:160","nodeType":"VariableDeclaration","scope":81156,"src":"32788:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32788:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81115,"initialValue":{"arguments":[{"expression":{"id":81108,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81099,"src":"32828:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32834:9:160","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":86392,"src":"32828:15:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81110,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81099,"src":"32845:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32851:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86394,"src":"32845:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81112,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81099,"src":"32864:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32870:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86396,"src":"32864:11:160","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":81106,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"32808:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":81107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32813:14:160","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":86608,"src":"32808:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":81114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32808:68:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32788:88:160"},{"expression":{"arguments":[{"id":81119,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81075,"src":"32916:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81120,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81082,"src":"32936:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81121,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81105,"src":"32944:9:160","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":81116,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"32890:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32897:18:160","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"32890:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32890:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81123,"nodeType":"ExpressionStatement","src":"32890:64:160"},{"id":81128,"nodeType":"UncheckedBlock","src":"32968:55:160","statements":[{"expression":{"id":81126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81124,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81082,"src":"32996:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33006:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"32996:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81127,"nodeType":"ExpressionStatement","src":"32996:12:160"}]},{"assignments":[81130],"declarations":[{"constant":false,"id":81130,"mutability":"mutable","name":"success","nameLocation":"33042:7:160","nodeType":"VariableDeclaration","scope":81156,"src":"33037:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81129,"name":"bool","nodeType":"ElementaryTypeName","src":"33037:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81137,"initialValue":{"arguments":[{"expression":{"id":81132,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81099,"src":"33067:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33073:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":86394,"src":"33067:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81134,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81099,"src":"33086:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33092:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86396,"src":"33086:11:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81131,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81613,"src":"33052:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":81136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33052:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"33037:61:160"},{"condition":{"id":81138,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81130,"src":"33116:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81154,"nodeType":"Block","src":"33211:84:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":81148,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81099,"src":"33251:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33257:9:160","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":86392,"src":"33251:15:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81150,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81099,"src":"33268:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33274:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86396,"src":"33268:11:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81147,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77026,"src":"33234:16:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33234:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81153,"nodeType":"EmitStatement","src":"33229:51:160"}]},"id":81155,"nodeType":"IfStatement","src":"33112:183:160","trueBody":{"id":81146,"nodeType":"Block","src":"33125:80:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":81140,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81099,"src":"33161:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33167:9:160","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":86392,"src":"33161:15:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81142,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81099,"src":"33178:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":81143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33184:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":86396,"src":"33178:11:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81139,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77000,"src":"33148:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33148:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81145,"nodeType":"EmitStatement","src":"33143:47:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81089,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81086,"src":"32697:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81090,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81064,"src":"32701:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32697:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81157,"initializationExpression":{"assignments":[81086],"declarations":[{"constant":false,"id":81086,"mutability":"mutable","name":"i","nameLocation":"32690:1:160","nodeType":"VariableDeclaration","scope":81157,"src":"32682:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81085,"name":"uint256","nodeType":"ElementaryTypeName","src":"32682:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81088,"initialValue":{"hexValue":"30","id":81087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32694:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32682:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32712:3:160","subExpression":{"id":81092,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81086,"src":"32712:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81094,"nodeType":"ExpressionStatement","src":"32712:3:160"},"nodeType":"ForStatement","src":"32677:628:160"},{"expression":{"arguments":[{"id":81160,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81075,"src":"33357:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33377:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81162,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81069,"src":"33380:16:160","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":81158,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"33322:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":81159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33329:27:160","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"33322:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33322:75:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81062,"id":81164,"nodeType":"Return","src":"33315:82:160"}]},"documentation":{"id":81054,"nodeType":"StructuredDocumentation","src":"31943:428:160","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":"32385:12:160","parameters":{"id":81059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81058,"mutability":"mutable","name":"_claims","nameLocation":"32425:7:160","nodeType":"VariableDeclaration","scope":81166,"src":"32398:34:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86397_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":81056,"nodeType":"UserDefinedTypeName","pathNode":{"id":81055,"name":"Gear.ValueClaim","nameLocations":["32398:4:160","32403:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":86397,"src":"32398:15:160"},"referencedDeclaration":86397,"src":"32398:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$86397_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":81057,"nodeType":"ArrayTypeName","src":"32398:17:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$86397_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"32397:36:160"},"returnParameters":{"id":81062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81061,"mutability":"mutable","name":"claimsHash","nameLocation":"32459:10:160","nodeType":"VariableDeclaration","scope":81166,"src":"32451:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32451:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"32450:20:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81244,"nodeType":"FunctionDefinition","src":"33726:686:160","nodes":[],"body":{"id":81243,"nodeType":"Block","src":"33814:598:160","nodes":[],"statements":[{"assignments":[81176],"declarations":[{"constant":false,"id":81176,"mutability":"mutable","name":"eventsLen","nameLocation":"33832:9:160","nodeType":"VariableDeclaration","scope":81243,"src":"33824:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81175,"name":"uint256","nodeType":"ElementaryTypeName","src":"33824:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81179,"initialValue":{"expression":{"id":81177,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81170,"src":"33844:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":81178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33852:6:160","memberName":"length","nodeType":"MemberAccess","src":"33844:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33824:34:160"},{"assignments":[81181],"declarations":[{"constant":false,"id":81181,"mutability":"mutable","name":"eventsHashesSize","nameLocation":"33876:16:160","nodeType":"VariableDeclaration","scope":81243,"src":"33868:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81180,"name":"uint256","nodeType":"ElementaryTypeName","src":"33868:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81185,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81182,"name":"eventsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81176,"src":"33895:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33907:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"33895:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33868:41:160"},{"assignments":[81187],"declarations":[{"constant":false,"id":81187,"mutability":"mutable","name":"eventsHashesMemPtr","nameLocation":"33927:18:160","nodeType":"VariableDeclaration","scope":81243,"src":"33919:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81186,"name":"uint256","nodeType":"ElementaryTypeName","src":"33919:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81192,"initialValue":{"arguments":[{"id":81190,"name":"eventsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81181,"src":"33964:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81188,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"33948:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33955:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"33948:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33948:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33919:62:160"},{"assignments":[81194],"declarations":[{"constant":false,"id":81194,"mutability":"mutable","name":"offset","nameLocation":"33999:6:160","nodeType":"VariableDeclaration","scope":81243,"src":"33991:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81193,"name":"uint256","nodeType":"ElementaryTypeName","src":"33991:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81196,"initialValue":{"hexValue":"30","id":81195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34008:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"33991:18:160"},{"body":{"id":81234,"nodeType":"Block","src":"34060:253:160","statements":[{"assignments":[81208],"declarations":[{"constant":false,"id":81208,"mutability":"mutable","name":"eventHash","nameLocation":"34082:9:160","nodeType":"VariableDeclaration","scope":81234,"src":"34074:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34074:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81214,"initialValue":{"arguments":[{"baseExpression":{"id":81210,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81170,"src":"34104:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":81212,"indexExpression":{"id":81211,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81198,"src":"34112:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34104:10:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":81209,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"34094:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34094:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"34074:41:160"},{"expression":{"arguments":[{"id":81218,"name":"eventsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81187,"src":"34155:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81219,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81194,"src":"34175:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81220,"name":"eventHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81208,"src":"34183:9:160","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":81215,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"34129:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34136:18:160","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"34129:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34129:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81222,"nodeType":"ExpressionStatement","src":"34129:64:160"},{"id":81227,"nodeType":"UncheckedBlock","src":"34207:55:160","statements":[{"expression":{"id":81225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81223,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81194,"src":"34235:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34245:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"34235:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81226,"nodeType":"ExpressionStatement","src":"34235:12:160"}]},{"eventCall":{"arguments":[{"baseExpression":{"id":81229,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81170,"src":"34291:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":81231,"indexExpression":{"id":81230,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81198,"src":"34299:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34291:10:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":81228,"name":"GearEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77005,"src":"34281:9:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory)"}},"id":81232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34281:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81233,"nodeType":"EmitStatement","src":"34276:26:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81201,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81198,"src":"34040:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81202,"name":"eventsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81176,"src":"34044:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34040:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81235,"initializationExpression":{"assignments":[81198],"declarations":[{"constant":false,"id":81198,"mutability":"mutable","name":"i","nameLocation":"34033:1:160","nodeType":"VariableDeclaration","scope":81235,"src":"34025:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81197,"name":"uint256","nodeType":"ElementaryTypeName","src":"34025:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81200,"initialValue":{"hexValue":"30","id":81199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34037:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"34025:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"34055:3:160","subExpression":{"id":81204,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81198,"src":"34055:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81206,"nodeType":"ExpressionStatement","src":"34055:3:160"},"nodeType":"ForStatement","src":"34020:293:160"},{"expression":{"arguments":[{"id":81238,"name":"eventsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81187,"src":"34365:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34385:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81240,"name":"eventsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81181,"src":"34388:16:160","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":81236,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"34330:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":81237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34337:27:160","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"34330:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34330:75:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81174,"id":81242,"nodeType":"Return","src":"34323:82:160"}]},"documentation":{"id":81167,"nodeType":"StructuredDocumentation","src":"33410:311:160","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":"33735:15:160","parameters":{"id":81171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81170,"mutability":"mutable","name":"_events","nameLocation":"33768:7:160","nodeType":"VariableDeclaration","scope":81244,"src":"33751:24:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":81168,"name":"bytes","nodeType":"ElementaryTypeName","src":"33751:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":81169,"nodeType":"ArrayTypeName","src":"33751:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"33750:26:160"},"returnParameters":{"id":81174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81173,"mutability":"mutable","name":"eventsHash","nameLocation":"33802:10:160","nodeType":"VariableDeclaration","scope":81244,"src":"33794:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33794:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"33793:20:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81322,"nodeType":"FunctionDefinition","src":"34745:700:160","nodes":[],"body":{"id":81321,"nodeType":"Block","src":"34835:610:160","nodes":[],"statements":[{"assignments":[81254],"declarations":[{"constant":false,"id":81254,"mutability":"mutable","name":"eventsLen","nameLocation":"34853:9:160","nodeType":"VariableDeclaration","scope":81321,"src":"34845:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81253,"name":"uint256","nodeType":"ElementaryTypeName","src":"34845:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81257,"initialValue":{"expression":{"id":81255,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81248,"src":"34865:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":81256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34873:6:160","memberName":"length","nodeType":"MemberAccess","src":"34865:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"34845:34:160"},{"assignments":[81259],"declarations":[{"constant":false,"id":81259,"mutability":"mutable","name":"eventsHashesSize","nameLocation":"34897:16:160","nodeType":"VariableDeclaration","scope":81321,"src":"34889:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81258,"name":"uint256","nodeType":"ElementaryTypeName","src":"34889:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81263,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81260,"name":"eventsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81254,"src":"34916:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34928:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"34916:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"34889:41:160"},{"assignments":[81265],"declarations":[{"constant":false,"id":81265,"mutability":"mutable","name":"eventsHashesMemPtr","nameLocation":"34948:18:160","nodeType":"VariableDeclaration","scope":81321,"src":"34940:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81264,"name":"uint256","nodeType":"ElementaryTypeName","src":"34940:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81270,"initialValue":{"arguments":[{"id":81268,"name":"eventsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81259,"src":"34985:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81266,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"34969:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34976:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"34969:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34969:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"34940:62:160"},{"assignments":[81272],"declarations":[{"constant":false,"id":81272,"mutability":"mutable","name":"offset","nameLocation":"35020:6:160","nodeType":"VariableDeclaration","scope":81321,"src":"35012:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81271,"name":"uint256","nodeType":"ElementaryTypeName","src":"35012:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81274,"initialValue":{"hexValue":"30","id":81273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35029:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"35012:18:160"},{"body":{"id":81312,"nodeType":"Block","src":"35081:265:160","statements":[{"assignments":[81286],"declarations":[{"constant":false,"id":81286,"mutability":"mutable","name":"eventHash","nameLocation":"35103:9:160","nodeType":"VariableDeclaration","scope":81312,"src":"35095:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35095:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81292,"initialValue":{"arguments":[{"baseExpression":{"id":81288,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81248,"src":"35125:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":81290,"indexExpression":{"id":81289,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81276,"src":"35133:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35125:10:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":81287,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"35115:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35115:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"35095:41:160"},{"expression":{"arguments":[{"id":81296,"name":"eventsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81265,"src":"35176:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81297,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81272,"src":"35196:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81298,"name":"eventHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81286,"src":"35204:9:160","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":81293,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"35150:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35157:18:160","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"35150:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35150:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81300,"nodeType":"ExpressionStatement","src":"35150:64:160"},{"id":81305,"nodeType":"UncheckedBlock","src":"35228:55:160","statements":[{"expression":{"id":81303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81301,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81272,"src":"35256:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35266:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"35256:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81304,"nodeType":"ExpressionStatement","src":"35256:12:160"}]},{"expression":{"arguments":[{"baseExpression":{"id":81307,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81248,"src":"35324:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":81309,"indexExpression":{"id":81308,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81276,"src":"35332:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35324:10:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":81306,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"35297:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (bytes calldata)"}},"id":81310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35297:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81311,"nodeType":"ExpressionStatement","src":"35297:38:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81276,"src":"35061:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81280,"name":"eventsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81254,"src":"35065:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35061:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81313,"initializationExpression":{"assignments":[81276],"declarations":[{"constant":false,"id":81276,"mutability":"mutable","name":"i","nameLocation":"35054:1:160","nodeType":"VariableDeclaration","scope":81313,"src":"35046:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81275,"name":"uint256","nodeType":"ElementaryTypeName","src":"35046:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81278,"initialValue":{"hexValue":"30","id":81277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35058:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"35046:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"35076:3:160","subExpression":{"id":81282,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81276,"src":"35076:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81284,"nodeType":"ExpressionStatement","src":"35076:3:160"},"nodeType":"ForStatement","src":"35041:305:160"},{"expression":{"arguments":[{"id":81316,"name":"eventsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81265,"src":"35398:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35418:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81318,"name":"eventsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81259,"src":"35421:16:160","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":81314,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"35363:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":81315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35370:27:160","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"35363:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35363:75:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81252,"id":81320,"nodeType":"Return","src":"35356:82:160"}]},"documentation":{"id":81245,"nodeType":"StructuredDocumentation","src":"34418:322:160","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":"34754:14:160","parameters":{"id":81249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81248,"mutability":"mutable","name":"_events","nameLocation":"34786:7:160","nodeType":"VariableDeclaration","scope":81322,"src":"34769:24:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":81246,"name":"bytes","nodeType":"ElementaryTypeName","src":"34769:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":81247,"nodeType":"ArrayTypeName","src":"34769:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"34768:26:160"},"returnParameters":{"id":81252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81251,"mutability":"mutable","name":"ethEventsHash","nameLocation":"34820:13:160","nodeType":"VariableDeclaration","scope":81322,"src":"34812:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34812:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34811:23:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81513,"nodeType":"FunctionDefinition","src":"38414:3700:160","nodes":[],"body":{"id":81512,"nodeType":"Block","src":"38483:3631:160","nodes":[],"statements":[{"condition":{"id":81333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38497:22:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81328,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81325,"src":"38499:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38508:6:160","memberName":"length","nodeType":"MemberAccess","src":"38499:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38517:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"38499:19:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81332,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"38498:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81336,"nodeType":"IfStatement","src":"38493:59:160","trueBody":{"id":81335,"nodeType":"Block","src":"38521:31:160","statements":[{"functionReturnParameters":81327,"id":81334,"nodeType":"Return","src":"38535:7:160"}]}},{"assignments":[81338],"declarations":[{"constant":false,"id":81338,"mutability":"mutable","name":"topicsLength","nameLocation":"38570:12:160","nodeType":"VariableDeclaration","scope":81512,"src":"38562:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81337,"name":"uint256","nodeType":"ElementaryTypeName","src":"38562:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81339,"nodeType":"VariableDeclarationStatement","src":"38562:20:160"},{"AST":{"nativeSrc":"38617:225:160","nodeType":"YulBlock","src":"38617:225:160","statements":[{"nativeSrc":"38777:55:160","nodeType":"YulAssignment","src":"38777:55:160","value":{"arguments":[{"kind":"number","nativeSrc":"38797:3:160","nodeType":"YulLiteral","src":"38797:3:160","type":"","value":"248"},{"arguments":[{"name":"_payload.offset","nativeSrc":"38815:15:160","nodeType":"YulIdentifier","src":"38815:15:160"}],"functionName":{"name":"calldataload","nativeSrc":"38802:12:160","nodeType":"YulIdentifier","src":"38802:12:160"},"nativeSrc":"38802:29:160","nodeType":"YulFunctionCall","src":"38802:29:160"}],"functionName":{"name":"shr","nativeSrc":"38793:3:160","nodeType":"YulIdentifier","src":"38793:3:160"},"nativeSrc":"38793:39:160","nodeType":"YulFunctionCall","src":"38793:39:160"},"variableNames":[{"name":"topicsLength","nativeSrc":"38777:12:160","nodeType":"YulIdentifier","src":"38777:12:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81325,"isOffset":true,"isSlot":false,"src":"38815:15:160","suffix":"offset","valueSize":1},{"declaration":81338,"isOffset":false,"isSlot":false,"src":"38777:12:160","valueSize":1}],"flags":["memory-safe"],"id":81340,"nodeType":"InlineAssembly","src":"38592:250:160"},{"condition":{"id":81349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38856:41:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81341,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81338,"src":"38858:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":81342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38874:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"38858:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81344,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81338,"src":"38879:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":81345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38895:1:160","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"38879:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38858:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"38857:40:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81352,"nodeType":"IfStatement","src":"38852:78:160","trueBody":{"id":81351,"nodeType":"Block","src":"38899:31:160","statements":[{"functionReturnParameters":81327,"id":81350,"nodeType":"Return","src":"38913:7:160"}]}},{"assignments":[81354],"declarations":[{"constant":false,"id":81354,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"38948:19:160","nodeType":"VariableDeclaration","scope":81512,"src":"38940:27:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81353,"name":"uint256","nodeType":"ElementaryTypeName","src":"38940:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81355,"nodeType":"VariableDeclarationStatement","src":"38940:27:160"},{"id":81364,"nodeType":"UncheckedBlock","src":"38977:78:160","statements":[{"expression":{"id":81362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81356,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81354,"src":"39001:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":81357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39023:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81358,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81338,"src":"39027:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39042:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39027:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39023:21:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39001:43:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81363,"nodeType":"ExpressionStatement","src":"39001:43:160"}]},{"condition":{"id":81370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"39069:41:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81365,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81325,"src":"39071:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39080:6:160","memberName":"length","nodeType":"MemberAccess","src":"39071:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":81367,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81354,"src":"39090:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39071:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81369,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39070:40:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81373,"nodeType":"IfStatement","src":"39065:78:160","trueBody":{"id":81372,"nodeType":"Block","src":"39112:31:160","statements":[{"functionReturnParameters":81327,"id":81371,"nodeType":"Return","src":"39126:7:160"}]}},{"assignments":[81376],"declarations":[{"constant":false,"id":81376,"mutability":"mutable","name":"topic1","nameLocation":"39246:6:160","nodeType":"VariableDeclaration","scope":81512,"src":"39238:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39238:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`","id":81377,"nodeType":"VariableDeclarationStatement","src":"39238:14:160"},{"AST":{"nativeSrc":"39287:71:160","nodeType":"YulBlock","src":"39287:71:160","statements":[{"nativeSrc":"39301:47:160","nodeType":"YulAssignment","src":"39301:47:160","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"39328:15:160","nodeType":"YulIdentifier","src":"39328:15:160"},{"kind":"number","nativeSrc":"39345:1:160","nodeType":"YulLiteral","src":"39345:1:160","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"39324:3:160","nodeType":"YulIdentifier","src":"39324:3:160"},"nativeSrc":"39324:23:160","nodeType":"YulFunctionCall","src":"39324:23:160"}],"functionName":{"name":"calldataload","nativeSrc":"39311:12:160","nodeType":"YulIdentifier","src":"39311:12:160"},"nativeSrc":"39311:37:160","nodeType":"YulFunctionCall","src":"39311:37:160"},"variableNames":[{"name":"topic1","nativeSrc":"39301:6:160","nodeType":"YulIdentifier","src":"39301:6:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81325,"isOffset":true,"isSlot":false,"src":"39328:15:160","suffix":"offset","valueSize":1},{"declaration":81376,"isOffset":false,"isSlot":false,"src":"39301:6:160","valueSize":1}],"flags":["memory-safe"],"id":81378,"nodeType":"InlineAssembly","src":"39262:96:160"},{"condition":{"id":81454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"39914:807:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81379,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39929:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81380,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76912,"src":"39939:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39952:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39939:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39929:31:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81383,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39976:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81384,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76925,"src":"39986:24:160","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":81385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40011:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39986:33:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39976:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:90:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81388,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40035:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81389,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76936,"src":"40045:22:160","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":81390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40068:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40045:31:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40035:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:147:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81393,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40092:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81394,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76943,"src":"40102:22:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":81395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40125:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40102:31:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40092:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:204:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81398,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40149:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81399,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"40159:26:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40186:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40159:35:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40149:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:265:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81403,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40210:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81404,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"40220:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40252:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40220:40:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40210:50:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:331:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81408,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40276:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81409,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76964,"src":"40286:7:160","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":81410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40294:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40286:16:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40276:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:373:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81413,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40318:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81414,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76973,"src":"40328:17:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":81415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40346:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40328:26:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40318:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:425:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81418,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40370:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81419,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76984,"src":"40380:5:160","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":81420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40386:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40380:14:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40370:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:465:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81423,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40410:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81424,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76993,"src":"40420:15:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":81425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40436:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40420:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40410:34:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:515:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81428,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40460:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81429,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77000,"src":"40470:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40483:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40470:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40460:31:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:562:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81433,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40507:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81434,"name":"GearEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77005,"src":"40517:9:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory)"}},"id":81435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40527:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40517:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40507:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:606:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81438,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40551:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81439,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"40561:36:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40598:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40561:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40551:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:677:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81443,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40622:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81444,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77019,"src":"40632:19:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40652:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40632:28:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40622:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:731:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81448,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"40676:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81449,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77026,"src":"40686:16:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40703:8:160","memberName":"selector","nodeType":"MemberAccess","src":"40686:25:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40676:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39929:782:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39915:806:160","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":81457,"nodeType":"IfStatement","src":"39910:844:160","trueBody":{"id":81456,"nodeType":"Block","src":"40723:31:160","statements":[{"functionReturnParameters":81327,"id":81455,"nodeType":"Return","src":"40737:7:160"}]}},{"assignments":[81459],"declarations":[{"constant":false,"id":81459,"mutability":"mutable","name":"size","nameLocation":"40805:4:160","nodeType":"VariableDeclaration","scope":81512,"src":"40797:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81458,"name":"uint256","nodeType":"ElementaryTypeName","src":"40797:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81460,"nodeType":"VariableDeclarationStatement","src":"40797:12:160"},{"id":81468,"nodeType":"UncheckedBlock","src":"40819:79:160","statements":[{"expression":{"id":81466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81461,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"40843:4:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81462,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81325,"src":"40850:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40859:6:160","memberName":"length","nodeType":"MemberAccess","src":"40850:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":81464,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81354,"src":"40868:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40850:37:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40843:44:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81467,"nodeType":"ExpressionStatement","src":"40843:44:160"}]},{"assignments":[81470],"declarations":[{"constant":false,"id":81470,"mutability":"mutable","name":"memPtr","nameLocation":"40916:6:160","nodeType":"VariableDeclaration","scope":81512,"src":"40908:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81469,"name":"uint256","nodeType":"ElementaryTypeName","src":"40908:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81475,"initialValue":{"arguments":[{"id":81473,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"40941:4:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81471,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"40925:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":81472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40932:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"40925:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40925:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40908:38:160"},{"AST":{"nativeSrc":"40981:93:160","nodeType":"YulBlock","src":"40981:93:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"41008:6:160","nodeType":"YulIdentifier","src":"41008:6:160"},{"arguments":[{"name":"_payload.offset","nativeSrc":"41020:15:160","nodeType":"YulIdentifier","src":"41020:15:160"},{"name":"topicsLengthInBytes","nativeSrc":"41037:19:160","nodeType":"YulIdentifier","src":"41037:19:160"}],"functionName":{"name":"add","nativeSrc":"41016:3:160","nodeType":"YulIdentifier","src":"41016:3:160"},"nativeSrc":"41016:41:160","nodeType":"YulFunctionCall","src":"41016:41:160"},{"name":"size","nativeSrc":"41059:4:160","nodeType":"YulIdentifier","src":"41059:4:160"}],"functionName":{"name":"calldatacopy","nativeSrc":"40995:12:160","nodeType":"YulIdentifier","src":"40995:12:160"},"nativeSrc":"40995:69:160","nodeType":"YulFunctionCall","src":"40995:69:160"},"nativeSrc":"40995:69:160","nodeType":"YulExpressionStatement","src":"40995:69:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81325,"isOffset":true,"isSlot":false,"src":"41020:15:160","suffix":"offset","valueSize":1},{"declaration":81470,"isOffset":false,"isSlot":false,"src":"41008:6:160","valueSize":1},{"declaration":81459,"isOffset":false,"isSlot":false,"src":"41059:4:160","valueSize":1},{"declaration":81354,"isOffset":false,"isSlot":false,"src":"41037:19:160","valueSize":1}],"flags":["memory-safe"],"id":81476,"nodeType":"InlineAssembly","src":"40956:118:160"},{"assignments":[81479],"declarations":[{"constant":false,"id":81479,"mutability":"mutable","name":"topic2","nameLocation":"41229:6:160","nodeType":"VariableDeclaration","scope":81512,"src":"41221:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41221:7:160","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":81480,"nodeType":"VariableDeclarationStatement","src":"41221:14:160"},{"assignments":[81482],"declarations":[{"constant":false,"id":81482,"mutability":"mutable","name":"topic3","nameLocation":"41253:6:160","nodeType":"VariableDeclaration","scope":81512,"src":"41245:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41245:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81483,"nodeType":"VariableDeclarationStatement","src":"41245:14:160"},{"assignments":[81485],"declarations":[{"constant":false,"id":81485,"mutability":"mutable","name":"topic4","nameLocation":"41277:6:160","nodeType":"VariableDeclaration","scope":81512,"src":"41269:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41269:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81486,"nodeType":"VariableDeclarationStatement","src":"41269:14:160"},{"AST":{"nativeSrc":"41318:194:160","nodeType":"YulBlock","src":"41318:194:160","statements":[{"nativeSrc":"41332:48:160","nodeType":"YulAssignment","src":"41332:48:160","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"41359:15:160","nodeType":"YulIdentifier","src":"41359:15:160"},{"kind":"number","nativeSrc":"41376:2:160","nodeType":"YulLiteral","src":"41376:2:160","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"41355:3:160","nodeType":"YulIdentifier","src":"41355:3:160"},"nativeSrc":"41355:24:160","nodeType":"YulFunctionCall","src":"41355:24:160"}],"functionName":{"name":"calldataload","nativeSrc":"41342:12:160","nodeType":"YulIdentifier","src":"41342:12:160"},"nativeSrc":"41342:38:160","nodeType":"YulFunctionCall","src":"41342:38:160"},"variableNames":[{"name":"topic2","nativeSrc":"41332:6:160","nodeType":"YulIdentifier","src":"41332:6:160"}]},{"nativeSrc":"41393:48:160","nodeType":"YulAssignment","src":"41393:48:160","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"41420:15:160","nodeType":"YulIdentifier","src":"41420:15:160"},{"kind":"number","nativeSrc":"41437:2:160","nodeType":"YulLiteral","src":"41437:2:160","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"41416:3:160","nodeType":"YulIdentifier","src":"41416:3:160"},"nativeSrc":"41416:24:160","nodeType":"YulFunctionCall","src":"41416:24:160"}],"functionName":{"name":"calldataload","nativeSrc":"41403:12:160","nodeType":"YulIdentifier","src":"41403:12:160"},"nativeSrc":"41403:38:160","nodeType":"YulFunctionCall","src":"41403:38:160"},"variableNames":[{"name":"topic3","nativeSrc":"41393:6:160","nodeType":"YulIdentifier","src":"41393:6:160"}]},{"nativeSrc":"41454:48:160","nodeType":"YulAssignment","src":"41454:48:160","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"41481:15:160","nodeType":"YulIdentifier","src":"41481:15:160"},{"kind":"number","nativeSrc":"41498:2:160","nodeType":"YulLiteral","src":"41498:2:160","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"41477:3:160","nodeType":"YulIdentifier","src":"41477:3:160"},"nativeSrc":"41477:24:160","nodeType":"YulFunctionCall","src":"41477:24:160"}],"functionName":{"name":"calldataload","nativeSrc":"41464:12:160","nodeType":"YulIdentifier","src":"41464:12:160"},"nativeSrc":"41464:38:160","nodeType":"YulFunctionCall","src":"41464:38:160"},"variableNames":[{"name":"topic4","nativeSrc":"41454:6:160","nodeType":"YulIdentifier","src":"41454:6:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81325,"isOffset":true,"isSlot":false,"src":"41359:15:160","suffix":"offset","valueSize":1},{"declaration":81325,"isOffset":true,"isSlot":false,"src":"41420:15:160","suffix":"offset","valueSize":1},{"declaration":81325,"isOffset":true,"isSlot":false,"src":"41481:15:160","suffix":"offset","valueSize":1},{"declaration":81479,"isOffset":false,"isSlot":false,"src":"41332:6:160","valueSize":1},{"declaration":81482,"isOffset":false,"isSlot":false,"src":"41393:6:160","valueSize":1},{"declaration":81485,"isOffset":false,"isSlot":false,"src":"41454:6:160","valueSize":1}],"flags":["memory-safe"],"id":81487,"nodeType":"InlineAssembly","src":"41293:219:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81488,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81338,"src":"41526:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":81489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41542:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"41526:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81493,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81338,"src":"41662:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":81494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41678:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"41662:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81498,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81338,"src":"41806:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":81499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41822:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"41806:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81503,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81338,"src":"41958:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":81504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41974:1:160","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"41958:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81508,"nodeType":"IfStatement","src":"41954:154:160","trueBody":{"id":81507,"nodeType":"Block","src":"41977:131:160","statements":[{"AST":{"nativeSrc":"42016:82:160","nodeType":"YulBlock","src":"42016:82:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"42039:6:160","nodeType":"YulIdentifier","src":"42039:6:160"},{"name":"size","nativeSrc":"42047:4:160","nodeType":"YulIdentifier","src":"42047:4:160"},{"name":"topic1","nativeSrc":"42053:6:160","nodeType":"YulIdentifier","src":"42053:6:160"},{"name":"topic2","nativeSrc":"42061:6:160","nodeType":"YulIdentifier","src":"42061:6:160"},{"name":"topic3","nativeSrc":"42069:6:160","nodeType":"YulIdentifier","src":"42069:6:160"},{"name":"topic4","nativeSrc":"42077:6:160","nodeType":"YulIdentifier","src":"42077:6:160"}],"functionName":{"name":"log4","nativeSrc":"42034:4:160","nodeType":"YulIdentifier","src":"42034:4:160"},"nativeSrc":"42034:50:160","nodeType":"YulFunctionCall","src":"42034:50:160"},"nativeSrc":"42034:50:160","nodeType":"YulExpressionStatement","src":"42034:50:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81470,"isOffset":false,"isSlot":false,"src":"42039:6:160","valueSize":1},{"declaration":81459,"isOffset":false,"isSlot":false,"src":"42047:4:160","valueSize":1},{"declaration":81376,"isOffset":false,"isSlot":false,"src":"42053:6:160","valueSize":1},{"declaration":81479,"isOffset":false,"isSlot":false,"src":"42061:6:160","valueSize":1},{"declaration":81482,"isOffset":false,"isSlot":false,"src":"42069:6:160","valueSize":1},{"declaration":81485,"isOffset":false,"isSlot":false,"src":"42077:6:160","valueSize":1}],"flags":["memory-safe"],"id":81506,"nodeType":"InlineAssembly","src":"41991:107:160"}]}},"id":81509,"nodeType":"IfStatement","src":"41802:306:160","trueBody":{"id":81502,"nodeType":"Block","src":"41825:123:160","statements":[{"AST":{"nativeSrc":"41864:74:160","nodeType":"YulBlock","src":"41864:74:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"41887:6:160","nodeType":"YulIdentifier","src":"41887:6:160"},{"name":"size","nativeSrc":"41895:4:160","nodeType":"YulIdentifier","src":"41895:4:160"},{"name":"topic1","nativeSrc":"41901:6:160","nodeType":"YulIdentifier","src":"41901:6:160"},{"name":"topic2","nativeSrc":"41909:6:160","nodeType":"YulIdentifier","src":"41909:6:160"},{"name":"topic3","nativeSrc":"41917:6:160","nodeType":"YulIdentifier","src":"41917:6:160"}],"functionName":{"name":"log3","nativeSrc":"41882:4:160","nodeType":"YulIdentifier","src":"41882:4:160"},"nativeSrc":"41882:42:160","nodeType":"YulFunctionCall","src":"41882:42:160"},"nativeSrc":"41882:42:160","nodeType":"YulExpressionStatement","src":"41882:42:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81470,"isOffset":false,"isSlot":false,"src":"41887:6:160","valueSize":1},{"declaration":81459,"isOffset":false,"isSlot":false,"src":"41895:4:160","valueSize":1},{"declaration":81376,"isOffset":false,"isSlot":false,"src":"41901:6:160","valueSize":1},{"declaration":81479,"isOffset":false,"isSlot":false,"src":"41909:6:160","valueSize":1},{"declaration":81482,"isOffset":false,"isSlot":false,"src":"41917:6:160","valueSize":1}],"flags":["memory-safe"],"id":81501,"nodeType":"InlineAssembly","src":"41839:99:160"}]}},"id":81510,"nodeType":"IfStatement","src":"41658:450:160","trueBody":{"id":81497,"nodeType":"Block","src":"41681:115:160","statements":[{"AST":{"nativeSrc":"41720:66:160","nodeType":"YulBlock","src":"41720:66:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"41743:6:160","nodeType":"YulIdentifier","src":"41743:6:160"},{"name":"size","nativeSrc":"41751:4:160","nodeType":"YulIdentifier","src":"41751:4:160"},{"name":"topic1","nativeSrc":"41757:6:160","nodeType":"YulIdentifier","src":"41757:6:160"},{"name":"topic2","nativeSrc":"41765:6:160","nodeType":"YulIdentifier","src":"41765:6:160"}],"functionName":{"name":"log2","nativeSrc":"41738:4:160","nodeType":"YulIdentifier","src":"41738:4:160"},"nativeSrc":"41738:34:160","nodeType":"YulFunctionCall","src":"41738:34:160"},"nativeSrc":"41738:34:160","nodeType":"YulExpressionStatement","src":"41738:34:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81470,"isOffset":false,"isSlot":false,"src":"41743:6:160","valueSize":1},{"declaration":81459,"isOffset":false,"isSlot":false,"src":"41751:4:160","valueSize":1},{"declaration":81376,"isOffset":false,"isSlot":false,"src":"41757:6:160","valueSize":1},{"declaration":81479,"isOffset":false,"isSlot":false,"src":"41765:6:160","valueSize":1}],"flags":["memory-safe"],"id":81496,"nodeType":"InlineAssembly","src":"41695:91:160"}]}},"id":81511,"nodeType":"IfStatement","src":"41522:586:160","trueBody":{"id":81492,"nodeType":"Block","src":"41545:107:160","statements":[{"AST":{"nativeSrc":"41584:58:160","nodeType":"YulBlock","src":"41584:58:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"41607:6:160","nodeType":"YulIdentifier","src":"41607:6:160"},{"name":"size","nativeSrc":"41615:4:160","nodeType":"YulIdentifier","src":"41615:4:160"},{"name":"topic1","nativeSrc":"41621:6:160","nodeType":"YulIdentifier","src":"41621:6:160"}],"functionName":{"name":"log1","nativeSrc":"41602:4:160","nodeType":"YulIdentifier","src":"41602:4:160"},"nativeSrc":"41602:26:160","nodeType":"YulFunctionCall","src":"41602:26:160"},"nativeSrc":"41602:26:160","nodeType":"YulExpressionStatement","src":"41602:26:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81470,"isOffset":false,"isSlot":false,"src":"41607:6:160","valueSize":1},{"declaration":81459,"isOffset":false,"isSlot":false,"src":"41615:4:160","valueSize":1},{"declaration":81376,"isOffset":false,"isSlot":false,"src":"41621:6:160","valueSize":1}],"flags":["memory-safe"],"id":81491,"nodeType":"InlineAssembly","src":"41559:83:160"}]}}]},"documentation":{"id":81323,"nodeType":"StructuredDocumentation","src":"35451:2958:160","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":"38423:26:160","parameters":{"id":81326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81325,"mutability":"mutable","name":"_payload","nameLocation":"38465:8:160","nodeType":"VariableDeclaration","scope":81513,"src":"38450:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":81324,"name":"bytes","nodeType":"ElementaryTypeName","src":"38450:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"38449:25:160"},"returnParameters":{"id":81327,"nodeType":"ParameterList","parameters":[],"src":"38483:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81546,"nodeType":"FunctionDefinition","src":"42380:586:160","nodes":[],"body":{"id":81545,"nodeType":"Block","src":"42444:522:160","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":81523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81521,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80120,"src":"42509:6:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":81522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42518:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"42509:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81524,"nodeType":"ExpressionStatement","src":"42509:13:160"},{"expression":{"id":81527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81525,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80123,"src":"42532:9:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81526,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81516,"src":"42544:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"42532:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81528,"nodeType":"ExpressionStatement","src":"42532:22:160"},{"assignments":[81530,81532],"declarations":[{"constant":false,"id":81530,"mutability":"mutable","name":"value","nameLocation":"42663:5:160","nodeType":"VariableDeclaration","scope":81545,"src":"42655:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81529,"name":"uint128","nodeType":"ElementaryTypeName","src":"42655:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81532,"mutability":"mutable","name":"success","nameLocation":"42675:7:160","nodeType":"VariableDeclaration","scope":81545,"src":"42670:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81531,"name":"bool","nodeType":"ElementaryTypeName","src":"42670:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":" @dev Transfer all available balance to the inheritor.","id":81535,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81533,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80776,"src":"42686:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":81534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42686:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"42654:65:160"},{"condition":{"id":81537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42733:8:160","subExpression":{"id":81536,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81532,"src":"42734:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81544,"nodeType":"IfStatement","src":"42729:231:160","trueBody":{"id":81543,"nodeType":"Block","src":"42743:217:160","statements":[{"documentation":" @dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":81539,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81516,"src":"42931:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81540,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81530,"src":"42943:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81538,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"42894:36:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42894:55:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81542,"nodeType":"EmitStatement","src":"42889:60:160"}]}}]},"documentation":{"id":81514,"nodeType":"StructuredDocumentation","src":"42177:198:160","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":81519,"kind":"modifierInvocation","modifierName":{"id":81518,"name":"onlyIfActive","nameLocations":["42431:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":80195,"src":"42431:12:160"},"nodeType":"ModifierInvocation","src":"42431:12:160"}],"name":"_setInheritor","nameLocation":"42389:13:160","parameters":{"id":81517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81516,"mutability":"mutable","name":"_inheritor","nameLocation":"42411:10:160","nodeType":"VariableDeclaration","scope":81546,"src":"42403:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81515,"name":"address","nodeType":"ElementaryTypeName","src":"42403:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42402:20:160"},"returnParameters":{"id":81520,"nodeType":"ParameterList","parameters":[],"src":"42444:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81561,"nodeType":"FunctionDefinition","src":"43069:281:160","nodes":[],"body":{"id":81560,"nodeType":"Block","src":"43123:227:160","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":81554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81552,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80114,"src":"43189:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81553,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81549,"src":"43201:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"43189:22:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81555,"nodeType":"ExpressionStatement","src":"43189:22:160"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":81557,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80114,"src":"43333:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81556,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76912,"src":"43320:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43320:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81559,"nodeType":"EmitStatement","src":"43315:28:160"}]},"documentation":{"id":81547,"nodeType":"StructuredDocumentation","src":"42972:92:160","text":" @dev Updates the state hash.\n @param _stateHash The new state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"43078:16:160","parameters":{"id":81550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81549,"mutability":"mutable","name":"_stateHash","nameLocation":"43103:10:160","nodeType":"VariableDeclaration","scope":81561,"src":"43095:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43095:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43094:20:160"},"returnParameters":{"id":81551,"nodeType":"ParameterList","parameters":[],"src":"43123:0:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81583,"nodeType":"FunctionDefinition","src":"43524:182:160","nodes":[],"body":{"id":81582,"nodeType":"Block","src":"43596:110:160","nodes":[],"statements":[{"assignments":[81571],"declarations":[{"constant":false,"id":81571,"mutability":"mutable","name":"wvaraAddr","nameLocation":"43614:9:160","nodeType":"VariableDeclaration","scope":81582,"src":"43606:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81570,"name":"address","nodeType":"ElementaryTypeName","src":"43606:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81577,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":81573,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81564,"src":"43634:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81572,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77796,"src":"43626:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$77796_$","typeString":"type(contract IRouter)"}},"id":81574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43626:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$77796","typeString":"contract IRouter"}},"id":81575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43646:11:160","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":77468,"src":"43626:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":81576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43626:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"43606:53:160"},{"expression":{"arguments":[{"id":81579,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81571,"src":"43689:9:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81578,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"43676:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77812_$","typeString":"type(contract IWrappedVara)"}},"id":81580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43676:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"functionReturnParameters":81569,"id":81581,"nodeType":"Return","src":"43669:30:160"}]},"documentation":{"id":81562,"nodeType":"StructuredDocumentation","src":"43392:127:160","text":" @dev Get the `WrappedVara` contract instance.\n @param routerAddr The address of the `Router` contract."},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"43533:6:160","parameters":{"id":81565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81564,"mutability":"mutable","name":"routerAddr","nameLocation":"43548:10:160","nodeType":"VariableDeclaration","scope":81583,"src":"43540:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81563,"name":"address","nodeType":"ElementaryTypeName","src":"43540:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43539:20:160"},"returnParameters":{"id":81569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81583,"src":"43582:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"},"typeName":{"id":81567,"nodeType":"UserDefinedTypeName","pathNode":{"id":81566,"name":"IWrappedVara","nameLocations":["43582:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":77812,"src":"43582:12:160"},"referencedDeclaration":77812,"src":"43582:12:160","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"43581:14:160"},"scope":81675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":81613,"nodeType":"FunctionDefinition","src":"43948:253:160","nodes":[],"body":{"id":81612,"nodeType":"Block","src":"44031:170:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":81595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81593,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81588,"src":"44045:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":81594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44054:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44045:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81609,"nodeType":"IfStatement","src":"44041:133:160","trueBody":{"id":81608,"nodeType":"Block","src":"44057:117:160","statements":[{"assignments":[81597,null],"declarations":[{"constant":false,"id":81597,"mutability":"mutable","name":"success","nameLocation":"44077:7:160","nodeType":"VariableDeclaration","scope":81608,"src":"44072:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81596,"name":"bool","nodeType":"ElementaryTypeName","src":"44072:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":81605,"initialValue":{"arguments":[{"hexValue":"","id":81603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44132:2:160","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":81598,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81586,"src":"44089:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44101:4:160","memberName":"call","nodeType":"MemberAccess","src":"44089:16:160","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":81602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":81600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44111:5:160","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":81601,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81588,"src":"44125:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"44089:42:160","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":81604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44089:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"44071:64:160"},{"expression":{"id":81606,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81597,"src":"44156:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":81592,"id":81607,"nodeType":"Return","src":"44149:14:160"}]}},{"expression":{"hexValue":"74727565","id":81610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"44190:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":81592,"id":81611,"nodeType":"Return","src":"44183:11:160"}]},"documentation":{"id":81584,"nodeType":"StructuredDocumentation","src":"43712:231:160","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":"43957:14:160","parameters":{"id":81589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81586,"mutability":"mutable","name":"destination","nameLocation":"43980:11:160","nodeType":"VariableDeclaration","scope":81613,"src":"43972:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81585,"name":"address","nodeType":"ElementaryTypeName","src":"43972:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81588,"mutability":"mutable","name":"value","nameLocation":"44001:5:160","nodeType":"VariableDeclaration","scope":81613,"src":"43993:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81587,"name":"uint128","nodeType":"ElementaryTypeName","src":"43993:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"43971:36:160"},"returnParameters":{"id":81592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81613,"src":"44025:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81590,"name":"bool","nodeType":"ElementaryTypeName","src":"44025:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44024:6:160"},"scope":81675,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81674,"nodeType":"FunctionDefinition","src":"44502:1106:160","nodes":[],"body":{"id":81673,"nodeType":"Block","src":"44544:1064:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81619,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44558:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44562:5:160","memberName":"value","nodeType":"MemberAccess","src":"44558:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44570:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44558:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81623,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44575:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44579:4:160","memberName":"data","nodeType":"MemberAccess","src":"44575:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44584:6:160","memberName":"length","nodeType":"MemberAccess","src":"44575:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44594:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44575:20:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"44558:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"44719:8:160","subExpression":{"id":81642,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80129,"src":"44720:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81644,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44731:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44735:4:160","memberName":"data","nodeType":"MemberAccess","src":"44731:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44740:6:160","memberName":"length","nodeType":"MemberAccess","src":"44731:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":81647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44750:4:160","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"44731:23:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"44719:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81670,"nodeType":"Block","src":"45549:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":81667,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"45570:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45570:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":81669,"nodeType":"RevertStatement","src":"45563:28:160"}]},"id":81671,"nodeType":"IfStatement","src":"44715:887:160","trueBody":{"id":81666,"nodeType":"Block","src":"44756:787:160","statements":[{"assignments":[81652],"declarations":[{"constant":false,"id":81652,"mutability":"mutable","name":"callReply","nameLocation":"45219:9:160","nodeType":"VariableDeclaration","scope":81666,"src":"45211:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81651,"name":"uint256","nodeType":"ElementaryTypeName","src":"45211:7:160","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":81653,"nodeType":"VariableDeclarationStatement","src":"45211:17:160"},{"AST":{"nativeSrc":"45268:63:160","nodeType":"YulBlock","src":"45268:63:160","statements":[{"nativeSrc":"45286:31:160","nodeType":"YulAssignment","src":"45286:31:160","value":{"arguments":[{"kind":"number","nativeSrc":"45312:4:160","nodeType":"YulLiteral","src":"45312:4:160","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"45299:12:160","nodeType":"YulIdentifier","src":"45299:12:160"},"nativeSrc":"45299:18:160","nodeType":"YulFunctionCall","src":"45299:18:160"},"variableNames":[{"name":"callReply","nativeSrc":"45286:9:160","nodeType":"YulIdentifier","src":"45286:9:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81652,"isOffset":false,"isSlot":false,"src":"45286:9:160","valueSize":1}],"flags":["memory-safe"],"id":81654,"nodeType":"InlineAssembly","src":"45243:88:160"},{"assignments":[81656],"declarations":[{"constant":false,"id":81656,"mutability":"mutable","name":"messageId","nameLocation":"45353:9:160","nodeType":"VariableDeclaration","scope":81666,"src":"45345:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45345:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81664,"initialValue":{"arguments":[{"expression":{"id":81658,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"45378:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45382:4:160","memberName":"data","nodeType":"MemberAccess","src":"45378:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81660,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81652,"src":"45388:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":81661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45401:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45388:14:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81657,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"45365:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":81663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45365:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"45345:58:160"},{"AST":{"nativeSrc":"45443:90:160","nodeType":"YulBlock","src":"45443:90:160","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"45468:4:160","nodeType":"YulLiteral","src":"45468:4:160","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"45474:9:160","nodeType":"YulIdentifier","src":"45474:9:160"}],"functionName":{"name":"mstore","nativeSrc":"45461:6:160","nodeType":"YulIdentifier","src":"45461:6:160"},"nativeSrc":"45461:23:160","nodeType":"YulFunctionCall","src":"45461:23:160"},"nativeSrc":"45461:23:160","nodeType":"YulExpressionStatement","src":"45461:23:160"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45508:4:160","nodeType":"YulLiteral","src":"45508:4:160","type":"","value":"0x00"},{"kind":"number","nativeSrc":"45514:4:160","nodeType":"YulLiteral","src":"45514:4:160","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"45501:6:160","nodeType":"YulIdentifier","src":"45501:6:160"},"nativeSrc":"45501:18:160","nodeType":"YulFunctionCall","src":"45501:18:160"},"nativeSrc":"45501:18:160","nodeType":"YulExpressionStatement","src":"45501:18:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81656,"isOffset":false,"isSlot":false,"src":"45474:9:160","valueSize":1}],"flags":["memory-safe"],"id":81665,"nodeType":"InlineAssembly","src":"45418:115:160"}]}},"id":81672,"nodeType":"IfStatement","src":"44554:1048:160","trueBody":{"id":81641,"nodeType":"Block","src":"44597:112:160","statements":[{"assignments":[81630],"declarations":[{"constant":false,"id":81630,"mutability":"mutable","name":"value","nameLocation":"44619:5:160","nodeType":"VariableDeclaration","scope":81641,"src":"44611:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81629,"name":"uint128","nodeType":"ElementaryTypeName","src":"44611:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":81636,"initialValue":{"arguments":[{"expression":{"id":81633,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44635:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44639:5:160","memberName":"value","nodeType":"MemberAccess","src":"44635:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44627:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":81631,"name":"uint128","nodeType":"ElementaryTypeName","src":"44627:7:160","typeDescriptions":{}}},"id":81635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44627:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"44611:34:160"},{"eventCall":{"arguments":[{"id":81638,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81630,"src":"44692:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81637,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"44665:26:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44665:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81640,"nodeType":"EmitStatement","src":"44660:38:160"}]}}]},"documentation":{"id":81614,"nodeType":"StructuredDocumentation","src":"44207:290:160","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":81617,"kind":"modifierInvocation","modifierName":{"id":81616,"name":"whenNotPaused","nameLocations":["44530:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":80256,"src":"44530:13:160"},"nodeType":"ModifierInvocation","src":"44530:13:160"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81615,"nodeType":"ParameterList","parameters":[],"src":"44510:2:160"},"returnParameters":{"id":81618,"nodeType":"ParameterList","parameters":[],"src":"44544:0:160"},"scope":81675,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":80103,"name":"IMirror","nameLocations":["2680:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":77171,"src":"2680:7:160"},"id":80104,"nodeType":"InheritanceSpecifier","src":"2680:7:160"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":80102,"nodeType":"StructuredDocumentation","src":"661:1999:160","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":[81675,77171],"name":"Mirror","nameLocation":"2670:6:160","scope":81676,"usedErrors":[77029,77032,77035,77038,77041,77044,77047,77050,77053,77055,77057,77059,77061,77063,77065],"usedEvents":[76912,76925,76936,76943,76948,76953,76964,76973,76984,76993,77000,77005,77012,77019,77026]}],"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/POAMiddleware.json b/ethexe/ethereum/abi/POAMiddleware.json index 53de26f9d5a..d50aaee21b1 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":"0x60a080604052346100c257306080525f5160206112375f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161117090816100c78239608051818181610bd50152610caf0152f35b6001600160401b0319166001600160401b039081175f5160206112375f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610e805780630a71094c14610e2b5780632633b70f146106025780632acde09814610238578063373bba1f146102385780633ccce789146106025780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c2957806352d1902d14610bc35780636c2eb350146109e85780636d1064eb146106025780636e5c793214610913578063709d06ae14610238578063715018a6146108ac578063729e2f361461089357806379a8b245146102385780637fbe95b51461077257806386c241a1146106025780638da5cb5b1461073e5780639300c92614610607578063936f433014610602578063945cf2dd1461023857806396115bc2146106025780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111305f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ea2565b610231611005565b610f94565b005b610265565b3461020957604036600319011261020957610256610ea2565b5061025f610f31565b50610f5d565b34610209575f36600319011215610f5d575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f1c565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610f5d575f80fd5b34610209575f3660031901126102095760408051906103c68183610efb565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111505f395f51905f52546001600160401b0360ff8260401c16159116801590816105fa575b60011490816105f0575b1590816105e7575b506105d8578060016001600160401b03195f5160206111505f395f51905f525416175f5160206111505f395f51905f52556105a8575b6004356001600160a01b0381168103610209576104b0906104a8611038565b610231611038565b61050a6040516104c1604082610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104f3611005565b80516020918201205f19015f9081522060ff191690565b5f5160206111305f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055657005b60ff60401b195f5160206111505f395f51905f5254165f5160206111505f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111505f395f51905f525416175f5160206111505f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610ee2565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064281610f46565b916106506040519384610efb565b818352602083016024819360051b8301019136831161020957602401905b82821061072657505050610680611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b82116103255782548284558083106106fc575b50915f5260205f20915f5b8281106106df57005b81516001600160a01b0316818501556020909101906001016106d6565b835f52828060205f20019103905f5b8281106107195750506106cb565b5f8282015560010161070b565b6020809161073384610ece565b81520191019061066e565b34610209575f366003190112610209575f5160206110f05f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107ed81610f46565b916107fb6040519384610efb565b818352602060048185019360061b830101019036821161020957602401915b8183106108485785604061083d6044888885526024810135602086015201610ece565b91015261025f610f31565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261087e86610ece565b8152828601358382015281520192019161081a565b346102095760603660031901126102095761025f610ea2565b34610209575f366003190112610209576108c4611005565b5f5160206110f05f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102095760403660031901126102095761092c610f1c565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109c9575050508161097e910382610efb565b604051918291602083019060208452518091526040830191905f5b8181106109a7575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610999565b82546001600160a01b0316845260209093019260019283019201610968565b34610209575f36600319011261020957610a00611005565b5f5160206111505f395f51905f525460ff8160401c16908115610bae575b506105d8575f5160206111505f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206110f05f395f51905f5254610a70906001600160a01b03166104a8611038565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111305f395f51905f52546040906007610ae78351610ab68582610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104f3611005565b91825f5160206111305f395f51905f5255610b438451610b08606082610efb565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104f3611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111505f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a1e565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a5760206040515f5160206111105f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c3d610ea2565b602435906001600160401b03821161020957366023830112156102095781600401356001600160401b0381116103255760405192610c85601f8301601f191660200185610efb565b818452366024838301011161020957815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e09575b50610c1a57610ce7611005565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610dd5575b50610d295783634c9c8ce360e01b5f5260045260245ffd5b805f5160206111105f395f51905f52859203610dc35750823b15610db1575f5160206111105f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610d995761023691611063565b505034610da257005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e01575b81610df160209383610efb565b8101031261020957519085610d11565b3d9150610de4565b5f5160206111105f395f51905f52546001600160a01b03161415905083610cda565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610f5d575f80fd5b3461020957604036600319011261020957610e99610ea2565b5061025f610eb8565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ea2565b90601f801991011681019081106001600160401b0382111761032557604052565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015610ff2575f5160206110f05f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206110f05f395f51905f52546001600160a01b0316330361102557565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111505f395f51905f525460401c161561105457565b631afcd79f60e31b5f5260045ffd5b905f8091602081519101845af480806110dc575b156110975750506040513d81523d5f602083013e60203d82010160405290565b156110bc57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d156110cd576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806110775750813b151561107756fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6518:163:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;805:6518:163;;7983:34:18;7979:146;;-1:-1:-1;805:6518:163;;;;;;;;1076:13:19;805:6518:163;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;8085:29:18;;805:6518:163;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;805:6518:163;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610e805780630a71094c14610e2b5780632633b70f146106025780632acde09814610238578063373bba1f146102385780633ccce789146106025780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c2957806352d1902d14610bc35780636c2eb350146109e85780636d1064eb146106025780636e5c793214610913578063709d06ae14610238578063715018a6146108ac578063729e2f361461089357806379a8b245146102385780637fbe95b51461077257806386c241a1146106025780638da5cb5b1461073e5780639300c92614610607578063936f433014610602578063945cf2dd1461023857806396115bc2146106025780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111305f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ea2565b610231611005565b610f94565b005b610265565b3461020957604036600319011261020957610256610ea2565b5061025f610f31565b50610f5d565b34610209575f36600319011215610f5d575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f1c565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610f5d575f80fd5b34610209575f3660031901126102095760408051906103c68183610efb565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111505f395f51905f52546001600160401b0360ff8260401c16159116801590816105fa575b60011490816105f0575b1590816105e7575b506105d8578060016001600160401b03195f5160206111505f395f51905f525416175f5160206111505f395f51905f52556105a8575b6004356001600160a01b0381168103610209576104b0906104a8611038565b610231611038565b61050a6040516104c1604082610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104f3611005565b80516020918201205f19015f9081522060ff191690565b5f5160206111305f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055657005b60ff60401b195f5160206111505f395f51905f5254165f5160206111505f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111505f395f51905f525416175f5160206111505f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610ee2565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064281610f46565b916106506040519384610efb565b818352602083016024819360051b8301019136831161020957602401905b82821061072657505050610680611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b82116103255782548284558083106106fc575b50915f5260205f20915f5b8281106106df57005b81516001600160a01b0316818501556020909101906001016106d6565b835f52828060205f20019103905f5b8281106107195750506106cb565b5f8282015560010161070b565b6020809161073384610ece565b81520191019061066e565b34610209575f366003190112610209575f5160206110f05f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107ed81610f46565b916107fb6040519384610efb565b818352602060048185019360061b830101019036821161020957602401915b8183106108485785604061083d6044888885526024810135602086015201610ece565b91015261025f610f31565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261087e86610ece565b8152828601358382015281520192019161081a565b346102095760603660031901126102095761025f610ea2565b34610209575f366003190112610209576108c4611005565b5f5160206110f05f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102095760403660031901126102095761092c610f1c565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109c9575050508161097e910382610efb565b604051918291602083019060208452518091526040830191905f5b8181106109a7575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610999565b82546001600160a01b0316845260209093019260019283019201610968565b34610209575f36600319011261020957610a00611005565b5f5160206111505f395f51905f525460ff8160401c16908115610bae575b506105d8575f5160206111505f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206110f05f395f51905f5254610a70906001600160a01b03166104a8611038565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111305f395f51905f52546040906007610ae78351610ab68582610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104f3611005565b91825f5160206111305f395f51905f5255610b438451610b08606082610efb565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104f3611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111505f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a1e565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a5760206040515f5160206111105f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c3d610ea2565b602435906001600160401b03821161020957366023830112156102095781600401356001600160401b0381116103255760405192610c85601f8301601f191660200185610efb565b818452366024838301011161020957815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e09575b50610c1a57610ce7611005565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610dd5575b50610d295783634c9c8ce360e01b5f5260045260245ffd5b805f5160206111105f395f51905f52859203610dc35750823b15610db1575f5160206111105f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610d995761023691611063565b505034610da257005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e01575b81610df160209383610efb565b8101031261020957519085610d11565b3d9150610de4565b5f5160206111105f395f51905f52546001600160a01b03161415905083610cda565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610f5d575f80fd5b3461020957604036600319011261020957610e99610ea2565b5061025f610eb8565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ea2565b90601f801991011681019081106001600160401b0382111761032557604052565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015610ff2575f5160206110f05f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206110f05f395f51905f52546001600160a01b0316330361102557565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111505f395f51905f525460401c161561105457565b631afcd79f60e31b5f5260045ffd5b905f8091602081519101845af480806110dc575b156110975750506040513d81523d5f602083013e60203d82010160405290565b156110bc57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d156110cd576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806110775750813b151561107756fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6518:163:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:25;805:6518;4461:25;;;805:6518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;2911:17;;805:6518;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;2378:1:52;805:6518:163;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;805:6518:163;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:25;;;;;;;805:6518;4461:25;;805:6518;;;;;;;;;;-1:-1:-1;;;805:6518:163;;;;;;;4461:25;;;;805:6518;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;;;4301:16:18;805:6518:163;;4724:16:18;;:34;;;;805:6518:163;4803:1:18;4788:16;:50;;;;805:6518:163;4853:13:18;:30;;;;805:6518:163;4849:91:18;;;805:6518:163;4803:1:18;-1:-1:-1;;;;;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;4977:67:18;;805:6518:163;;;-1:-1:-1;;;;;805:6518:163;;;;;;6959:1:18;;6891:76;;:::i;:::-;;;:::i;6959:1::-;7001:37:163;805:6518;;;;;;:::i;:::-;;;;;;;;;2324:62:52;;:::i;:::-;1794:178:36;;;;;;;-1:-1:-1;;1794:178:36;;;;;;-1:-1:-1;;1794:178:36;;1701:277;7001:37:163;-1:-1:-1;;;;;;;;;;;1075:66:163;;;1732:14;805:6518;;-1:-1:-1;;;;;805:6518:163;;;;;;1721:8;;805:6518;;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;;;;;;;5064:101:18;;805:6518:163;5064:101:18;-1:-1:-1;;;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;;;;;;805:6518:163;5140:14:18;805:6518:163;;;4803:1:18;805:6518:163;;5140:14:18;805:6518:163;4977:67:18;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;4977:67:18;;4849:91;6496:23;;;805:6518:163;4906:23:18;805:6518:163;;4906:23:18;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;805:6518:163;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:62:52;;;;;:::i;:::-;1302:66:163;805:6518;;;;-1:-1:-1;;;;;805:6518:163;;;;-1:-1:-1;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;805:6518:163;;;;;;;-1:-1:-1;;;;;805:6518:163;3996:40:52;805:6518:163;;3996:40:52;805:6518:163;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;1302:66;805:6518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;-1:-1:-1;805:6518:163;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6518:163;;;;;;6429:44:18;;;;;805:6518:163;6425:105:18;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;805:6518:163;;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;6959:1:18;;-1:-1:-1;;;;;805:6518:163;6891:76:18;;:::i;6959:1::-;6654:20;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;2175:17;7001:37;805:6518;;;;;;:::i;:::-;;;;;;;;;2324:62:52;;:::i;7001:37:163:-;1075:66;;-1:-1:-1;;;;;;;;;;;1075:66:163;7210:37;805:6518;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;805:6518:163;;;;2324:62:52;;:::i;7210:37:163:-;1302:66;1075;2175:17;;805:6518;2155:17;;805:6518;;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;805:6518:163;;;;1881:1;805:6518;;6654:20:18;805:6518:163;6429:44:18;1881:1:163;805:6518;;-1:-1:-1;;;;;805:6518:163;6448:25:18;;6429:44;;;805:6518:163;;;;;;-1:-1:-1;;805:6518:163;;;;4840:6:19;-1:-1:-1;;;;;805:6518:163;4831:4:19;4823:23;4819:145;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;4819:145:19;4594:29;;;805:6518:163;4924:29:19;805:6518:163;;4924:29:19;805:6518:163;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4417:6:19;805:6518:163;4408:4:19;4400:23;;;:120;;;;805:6518:163;4383:251:19;;;2324:62:52;;:::i;:::-;805:6518:163;;-1:-1:-1;;;5881:52:19;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;5881:52:19;;805:6518:163;;5881:52:19;;;805:6518:163;-1:-1:-1;5877:437:19;;1805:47:11;;;;805:6518:163;6243:60:19;805:6518:163;;;;6243:60:19;5877:437;5975:40;-1:-1:-1;;;;;;;;;;;5975:40:19;;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;805:6518:163;;;;;2407:36:11;-1:-1:-1;;2407:36:11;805:6518:163;;2458:15:11;:11;;2489:53;;;:::i;2454:148::-;6185:9;;;6181:70;;805:6518:163;6181:70:11;6221:19;;;805:6518:163;6221:19:11;805:6518:163;;6221:19:11;1744:119;1805:47;;;805:6518:163;1805:47:11;805:6518:163;;;;1805:47:11;5971:120:19;6042:34;;;805:6518:163;6042:34:19;805:6518:163;;;;6042:34:19;5881:52;;;;805:6518:163;5881:52:19;;805:6518:163;5881:52:19;;;;;;805:6518:163;5881:52:19;;;:::i;:::-;;;805:6518:163;;;;;5881:52:19;;;;;;;-1:-1:-1;5881:52:19;;4400:120;-1:-1:-1;;;;;;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;4478:42:19;;;-1:-1:-1;4400:120:19;;;805:6518:163;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6518:163;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;805:6518:163;;;;;;:::o;:::-;;;-1:-1:-1;;;;;805:6518:163;;;;;;:::o;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6518:163;;;;;;;;;:::o;5350:95::-;805:6518;;-1:-1:-1;;;5413:25:163;;805:6518;5413:25;;;805:6518;;;;;;-1:-1:-1;;;805:6518:163;;;;;;4461:25;3426:215:52;-1:-1:-1;;;;;805:6518:163;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;805:6518:163;;;;;;;-1:-1:-1;;;;;805:6518:163;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;805:6518:163;;3530:1:52;3555:31;2679:162;-1:-1:-1;;;;;;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;805:6518:163;;-1:-1:-1;2784:40:52;7082:141:18;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;805:6518:163;;;;5045:24:25;805:6518:163;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;5189:169;;;-1:-1:-1;5189:169:32;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"1929":[{"start":3029,"length":32},{"start":3247,"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.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e\",\"dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59\",\"dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0x32f72886b18a7674ebb7de194c7cbaa263805859a9103b17993de589c0756588\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2e5939801a7d1bdec092e3029cd75a0abffda28f06f2f3624eea9981d396182b\",\"dweb:/ipfs/QmP3jPRTzDWRLNvA9ySNbHXH8mnZeXXxJK6mMzkgaDo1MH\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x7ebe35c7acd8901b1066e709a2a7f94cc22bfe0f1926d277dc43525c3dd799e7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6081b73fa73ebd12cdd7d4bb0dd9d3c257345b310f6f9c4471eee23724efee92\",\"dweb:/ipfs/QmNrQMGwiCaSuMdLC6cjmG3o2Cg5if7JgNgHKXLc7dZze9\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd\",\"dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd\",\"dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol":{"keccak256":"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402","urls":["bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e","dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c","urls":["bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59","dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IPOAMiddleware.sol":{"keccak256":"0x32f72886b18a7674ebb7de194c7cbaa263805859a9103b17993de589c0756588","urls":["bzz-raw://2e5939801a7d1bdec092e3029cd75a0abffda28f06f2f3624eea9981d396182b","dweb:/ipfs/QmP3jPRTzDWRLNvA9ySNbHXH8mnZeXXxJK6mMzkgaDo1MH"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/POAMiddleware.sol":{"keccak256":"0x7ebe35c7acd8901b1066e709a2a7f94cc22bfe0f1926d277dc43525c3dd799e7","urls":["bzz-raw://6081b73fa73ebd12cdd7d4bb0dd9d3c257345b310f6f9c4471eee23724efee92","dweb:/ipfs/QmNrQMGwiCaSuMdLC6cjmG3o2Cg5if7JgNgHKXLc7dZze9"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0","urls":["bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd","dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153","urls":["bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd","dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":82223,"exportedSymbols":{"Gear":[87132],"IMiddleware":[76902],"IPOAMiddleware":[77182],"MapWithTimeData":[87420],"OwnableUpgradeable":[19465],"POAMiddleware":[82222],"ReentrancyGuardTransient":[6594],"SlotDerivation":[6724],"StorageSlot":[6848],"UUPSUpgradeable":[2079]},"nodeType":"SourceUnit","src":"114:7210:163","nodes":[{"id":81645,"nodeType":"PragmaDirective","src":"114:24:163","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":81647,"nodeType":"ImportDirective","src":"140:101:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82223,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":81646,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81649,"nodeType":"ImportDirective","src":"242:88:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82223,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":81648,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"250:15:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81651,"nodeType":"ImportDirective","src":"331:100:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":82223,"sourceUnit":6595,"symbolAliases":[{"foreign":{"id":81650,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"339:24:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81653,"nodeType":"ImportDirective","src":"432:80:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":82223,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":81652,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"440:14:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81655,"nodeType":"ImportDirective","src":"513:74:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":82223,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":81654,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"521:11:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81657,"nodeType":"ImportDirective","src":"588:48:163","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":82223,"sourceUnit":76903,"symbolAliases":[{"foreign":{"id":81656,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"596:11:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81659,"nodeType":"ImportDirective","src":"637:54:163","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":82223,"sourceUnit":77183,"symbolAliases":[{"foreign":{"id":81658,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77182,"src":"645:14:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81661,"nodeType":"ImportDirective","src":"692:44:163","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82223,"sourceUnit":87133,"symbolAliases":[{"foreign":{"id":81660,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"700:4:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81663,"nodeType":"ImportDirective","src":"737:66:163","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":82223,"sourceUnit":87421,"symbolAliases":[{"foreign":{"id":81662,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87420,"src":"745:15:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82222,"nodeType":"ContractDefinition","src":"805:6518:163","nodes":[{"id":81676,"nodeType":"VariableDeclaration","src":"1035:106:163","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1060:12:163","scope":82222,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1035:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":81675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1075:66:163","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":81679,"nodeType":"VariableDeclaration","src":"1258:110:163","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1283:16:163","scope":82222,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1258:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":81678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1302:66:163","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":81687,"nodeType":"FunctionDefinition","src":"1443:53:163","nodes":[],"body":{"id":81686,"nodeType":"Block","src":"1457:39:163","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81683,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"1467:20:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":81684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1467:22:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81685,"nodeType":"ExpressionStatement","src":"1467:22:163"}]},"documentation":{"id":81680,"nodeType":"StructuredDocumentation","src":"1375:63:163","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81681,"nodeType":"ParameterList","parameters":[],"src":"1454:2:163"},"returnParameters":{"id":81682,"nodeType":"ParameterList","parameters":[],"src":"1457:0:163"},"scope":82222,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81718,"nodeType":"FunctionDefinition","src":"1502:251:163","nodes":[],"body":{"id":81717,"nodeType":"Block","src":"1570:183:163","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":81696,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81690,"src":"1595:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":81697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1603:5:163","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":76633,"src":"1595:13:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81695,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"1580:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":81698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1580:29:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81699,"nodeType":"ExpressionStatement","src":"1580:29:163"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":81701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1636:33:163","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":81700,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82197,"src":"1620:15:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1620:50:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81703,"nodeType":"ExpressionStatement","src":"1620:50:163"},{"assignments":[81706],"declarations":[{"constant":false,"id":81706,"mutability":"mutable","name":"$","nameLocation":"1696:1:163","nodeType":"VariableDeclaration","scope":81717,"src":"1680:17:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81705,"nodeType":"UserDefinedTypeName","pathNode":{"id":81704,"name":"Storage","nameLocations":["1680:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"1680:7:163"},"referencedDeclaration":76699,"src":"1680:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":81709,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81707,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"1700:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1700:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1680:30:163"},{"expression":{"id":81715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81710,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81706,"src":"1721:1:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1723:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"1721:8:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81713,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81690,"src":"1732:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":81714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1740:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76657,"src":"1732:14:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1721:25:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81716,"nodeType":"ExpressionStatement","src":"1721:25:163"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":81693,"kind":"modifierInvocation","modifierName":{"id":81692,"name":"initializer","nameLocations":["1558:11:163"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"1558:11:163"},"nodeType":"ModifierInvocation","src":"1558:11:163"}],"name":"initialize","nameLocation":"1511:10:163","parameters":{"id":81691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81690,"mutability":"mutable","name":"_params","nameLocation":"1542:7:163","nodeType":"VariableDeclaration","scope":81718,"src":"1522:27:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":81689,"nodeType":"UserDefinedTypeName","pathNode":{"id":81688,"name":"InitParams","nameLocations":["1522:10:163"],"nodeType":"IdentifierPath","referencedDeclaration":76661,"src":"1522:10:163"},"referencedDeclaration":76661,"src":"1522:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"1521:29:163"},"returnParameters":{"id":81694,"nodeType":"ParameterList","parameters":[],"src":"1570:0:163"},"scope":82222,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81760,"nodeType":"FunctionDefinition","src":"1826:373:163","nodes":[],"body":{"id":81759,"nodeType":"Block","src":"1884:315:163","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":81728,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"1909:5:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1909:7:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81727,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"1894:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":81730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1894:23:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81731,"nodeType":"ExpressionStatement","src":"1894:23:163"},{"assignments":[81734],"declarations":[{"constant":false,"id":81734,"mutability":"mutable","name":"oldStorage","nameLocation":"1944:10:163","nodeType":"VariableDeclaration","scope":81759,"src":"1928:26:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81733,"nodeType":"UserDefinedTypeName","pathNode":{"id":81732,"name":"Storage","nameLocations":["1928:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"1928:7:163"},"referencedDeclaration":76699,"src":"1928:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":81737,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81735,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"1957:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1957:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1928:39:163"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":81739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1994:33:163","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":81738,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82197,"src":"1978:15:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:50:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81741,"nodeType":"ExpressionStatement","src":"1978:50:163"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":81743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2057:36:163","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":81742,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82221,"src":"2038:18:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:56:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81745,"nodeType":"ExpressionStatement","src":"2038:56:163"},{"assignments":[81748],"declarations":[{"constant":false,"id":81748,"mutability":"mutable","name":"newStorage","nameLocation":"2121:10:163","nodeType":"VariableDeclaration","scope":81759,"src":"2105:26:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81747,"nodeType":"UserDefinedTypeName","pathNode":{"id":81746,"name":"Storage","nameLocations":["2105:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"2105:7:163"},"referencedDeclaration":76699,"src":"2105:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":81751,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81749,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"2134:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2105:39:163"},{"expression":{"id":81757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81752,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81748,"src":"2155:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2166:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"2155:17:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81755,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"2175:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2186:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"2175:17:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2155:37:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81758,"nodeType":"ExpressionStatement","src":"2155:37:163"}]},"documentation":{"id":81719,"nodeType":"StructuredDocumentation","src":"1759:62:163","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":81722,"kind":"modifierInvocation","modifierName":{"id":81721,"name":"onlyOwner","nameLocations":["1857:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"1857:9:163"},"nodeType":"ModifierInvocation","src":"1857:9:163"},{"arguments":[{"hexValue":"32","id":81724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1881:1:163","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":81725,"kind":"modifierInvocation","modifierName":{"id":81723,"name":"reinitializer","nameLocations":["1867:13:163"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"1867:13:163"},"nodeType":"ModifierInvocation","src":"1867:16:163"}],"name":"reinitialize","nameLocation":"1835:12:163","parameters":{"id":81720,"nodeType":"ParameterList","parameters":[],"src":"1847:2:163"},"returnParameters":{"id":81726,"nodeType":"ParameterList","parameters":[],"src":"1884:0:163"},"scope":82222,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81770,"nodeType":"FunctionDefinition","src":"2364:84:163","nodes":[],"body":{"id":81769,"nodeType":"Block","src":"2446:2:163","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":81761,"nodeType":"StructuredDocumentation","src":"2205:154:163","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":81767,"kind":"modifierInvocation","modifierName":{"id":81766,"name":"onlyOwner","nameLocations":["2436:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2436:9:163"},"nodeType":"ModifierInvocation","src":"2436:9:163"}],"name":"_authorizeUpgrade","nameLocation":"2373:17:163","overrides":{"id":81765,"nodeType":"OverrideSpecifier","overrides":[],"src":"2427:8:163"},"parameters":{"id":81764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81763,"mutability":"mutable","name":"newImplementation","nameLocation":"2399:17:163","nodeType":"VariableDeclaration","scope":81770,"src":"2391:25:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81762,"name":"address","nodeType":"ElementaryTypeName","src":"2391:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2390:27:163"},"returnParameters":{"id":81768,"nodeType":"ParameterList","parameters":[],"src":"2446:0:163"},"scope":82222,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":81786,"nodeType":"FunctionDefinition","src":"2579:124:163","nodes":[],"body":{"id":81785,"nodeType":"Block","src":"2650:53:163","nodes":[],"statements":[{"expression":{"id":81783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81779,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82149,"src":"2660:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$77174_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":81780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2660:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$77174_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":81781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2674:9:163","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":77173,"src":"2660:23:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81782,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81774,"src":"2686:10:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2660:36:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":81784,"nodeType":"ExpressionStatement","src":"2660:36:163"}]},"baseFunctions":[77181],"documentation":{"id":81771,"nodeType":"StructuredDocumentation","src":"2454:120:163","text":" @dev Sets validators for POA middleware.\n @param validators The addresses of validators to set."},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":81777,"kind":"modifierInvocation","modifierName":{"id":81776,"name":"onlyOwner","nameLocations":["2640:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2640:9:163"},"nodeType":"ModifierInvocation","src":"2640:9:163"}],"name":"setValidators","nameLocation":"2588:13:163","parameters":{"id":81775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81774,"mutability":"mutable","name":"validators","nameLocation":"2619:10:163","nodeType":"VariableDeclaration","scope":81786,"src":"2602:27:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81772,"name":"address","nodeType":"ElementaryTypeName","src":"2602:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81773,"nodeType":"ArrayTypeName","src":"2602:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2601:29:163"},"returnParameters":{"id":81778,"nodeType":"ParameterList","parameters":[],"src":"2650:0:163"},"scope":82222,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81801,"nodeType":"FunctionDefinition","src":"2709:129:163","nodes":[],"body":{"id":81800,"nodeType":"Block","src":"2791:47:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81796,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82149,"src":"2808:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$77174_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":81797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2808:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$77174_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":81798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2822:9:163","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":77173,"src":"2808:23:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":81795,"id":81799,"nodeType":"Return","src":"2801:30:163"}]},"baseFunctions":[76810],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2718:14:163","parameters":{"id":81791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81801,"src":"2733:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81787,"name":"uint48","nodeType":"ElementaryTypeName","src":"2733:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":81790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81801,"src":"2741:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81789,"name":"uint256","nodeType":"ElementaryTypeName","src":"2741:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2732:17:163"},"returnParameters":{"id":81795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81801,"src":"2773:16:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81792,"name":"address","nodeType":"ElementaryTypeName","src":"2773:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81793,"nodeType":"ArrayTypeName","src":"2773:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2772:18:163"},"scope":82222,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":81811,"nodeType":"FunctionDefinition","src":"2844:91:163","nodes":[],"body":{"id":81810,"nodeType":"Block","src":"2894:41:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81806,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"2911:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2922:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"2911:17:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81805,"id":81809,"nodeType":"Return","src":"2904:24:163"}]},"baseFunctions":[76783],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2853:6:163","parameters":{"id":81802,"nodeType":"ParameterList","parameters":[],"src":"2859:2:163"},"returnParameters":{"id":81805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81811,"src":"2885:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81803,"name":"address","nodeType":"ElementaryTypeName","src":"2885:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2884:9:163"},"scope":82222,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":81821,"nodeType":"FunctionDefinition","src":"3094:94:163","nodes":[],"body":{"id":81820,"nodeType":"Block","src":"3146:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3163:17:163","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":81816,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3156:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81819,"nodeType":"ExpressionStatement","src":"3156:25:163"}]},"baseFunctions":[76723],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3103:11:163","parameters":{"id":81812,"nodeType":"ParameterList","parameters":[],"src":"3114:2:163"},"returnParameters":{"id":81815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81821,"src":"3138:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81813,"name":"uint48","nodeType":"ElementaryTypeName","src":"3138:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3137:8:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81831,"nodeType":"FunctionDefinition","src":"3194:104:163","nodes":[],"body":{"id":81830,"nodeType":"Block","src":"3256:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3273:17:163","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":81826,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3266:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3266:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81829,"nodeType":"ExpressionStatement","src":"3266:25:163"}]},"baseFunctions":[76728],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3203:21:163","parameters":{"id":81822,"nodeType":"ParameterList","parameters":[],"src":"3224:2:163"},"returnParameters":{"id":81825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81831,"src":"3248:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81823,"name":"uint48","nodeType":"ElementaryTypeName","src":"3248:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3247:8:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81841,"nodeType":"FunctionDefinition","src":"3304:102:163","nodes":[],"body":{"id":81840,"nodeType":"Block","src":"3364:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3381:17:163","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":81836,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3374:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81839,"nodeType":"ExpressionStatement","src":"3374:25:163"}]},"baseFunctions":[76733],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3313:19:163","parameters":{"id":81832,"nodeType":"ParameterList","parameters":[],"src":"3332:2:163"},"returnParameters":{"id":81835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81841,"src":"3356:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81833,"name":"uint48","nodeType":"ElementaryTypeName","src":"3356:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3355:8:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81851,"nodeType":"FunctionDefinition","src":"3412:99:163","nodes":[],"body":{"id":81850,"nodeType":"Block","src":"3469:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3486:17:163","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":81846,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3479:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3479:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81849,"nodeType":"ExpressionStatement","src":"3479:25:163"}]},"baseFunctions":[76738],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3421:16:163","parameters":{"id":81842,"nodeType":"ParameterList","parameters":[],"src":"3437:2:163"},"returnParameters":{"id":81845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81844,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81851,"src":"3461:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81843,"name":"uint48","nodeType":"ElementaryTypeName","src":"3461:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3460:8:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81861,"nodeType":"FunctionDefinition","src":"3517:98:163","nodes":[],"body":{"id":81860,"nodeType":"Block","src":"3573:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3590:17:163","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":81856,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3583:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81859,"nodeType":"ExpressionStatement","src":"3583:25:163"}]},"baseFunctions":[76743],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3526:15:163","parameters":{"id":81852,"nodeType":"ParameterList","parameters":[],"src":"3541:2:163"},"returnParameters":{"id":81855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81861,"src":"3565:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81853,"name":"uint48","nodeType":"ElementaryTypeName","src":"3565:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3564:8:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81871,"nodeType":"FunctionDefinition","src":"3621:105:163","nodes":[],"body":{"id":81870,"nodeType":"Block","src":"3684:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3701:17:163","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":81866,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3694:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3694:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81869,"nodeType":"ExpressionStatement","src":"3694:25:163"}]},"baseFunctions":[76748],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3630:22:163","parameters":{"id":81862,"nodeType":"ParameterList","parameters":[],"src":"3652:2:163"},"returnParameters":{"id":81865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81871,"src":"3676:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81863,"name":"uint48","nodeType":"ElementaryTypeName","src":"3676:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3675:8:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81881,"nodeType":"FunctionDefinition","src":"3732:109:163","nodes":[],"body":{"id":81880,"nodeType":"Block","src":"3799:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3816:17:163","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":81876,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3809:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3809:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81879,"nodeType":"ExpressionStatement","src":"3809:25:163"}]},"baseFunctions":[76753],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3741:25:163","parameters":{"id":81872,"nodeType":"ParameterList","parameters":[],"src":"3766:2:163"},"returnParameters":{"id":81875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81881,"src":"3790:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81873,"name":"uint256","nodeType":"ElementaryTypeName","src":"3790:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3789:9:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81891,"nodeType":"FunctionDefinition","src":"3847:106:163","nodes":[],"body":{"id":81890,"nodeType":"Block","src":"3911:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3928:17:163","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":81886,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3921:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3921:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81889,"nodeType":"ExpressionStatement","src":"3921:25:163"}]},"baseFunctions":[76758],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3856:23:163","parameters":{"id":81882,"nodeType":"ParameterList","parameters":[],"src":"3879:2:163"},"returnParameters":{"id":81885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81891,"src":"3903:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81883,"name":"uint64","nodeType":"ElementaryTypeName","src":"3903:6:163","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3902:8:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81901,"nodeType":"FunctionDefinition","src":"3959:102:163","nodes":[],"body":{"id":81900,"nodeType":"Block","src":"4019:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4036:17:163","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":81896,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4029:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4029:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81899,"nodeType":"ExpressionStatement","src":"4029:25:163"}]},"baseFunctions":[76763],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"3968:19:163","parameters":{"id":81892,"nodeType":"ParameterList","parameters":[],"src":"3987:2:163"},"returnParameters":{"id":81895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81894,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81901,"src":"4011:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81893,"name":"uint64","nodeType":"ElementaryTypeName","src":"4011:6:163","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4010:8:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81911,"nodeType":"FunctionDefinition","src":"4067:94:163","nodes":[],"body":{"id":81910,"nodeType":"Block","src":"4119:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4136:17:163","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":81906,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4129:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81909,"nodeType":"ExpressionStatement","src":"4129:25:163"}]},"baseFunctions":[76768],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4076:10:163","parameters":{"id":81902,"nodeType":"ParameterList","parameters":[],"src":"4086:2:163"},"returnParameters":{"id":81905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81911,"src":"4110:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81903,"name":"address","nodeType":"ElementaryTypeName","src":"4110:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4109:9:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81921,"nodeType":"FunctionDefinition","src":"4167:94:163","nodes":[],"body":{"id":81920,"nodeType":"Block","src":"4219:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4236:17:163","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":81916,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4229:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4229:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81919,"nodeType":"ExpressionStatement","src":"4229:25:163"}]},"baseFunctions":[76773],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4176:10:163","parameters":{"id":81912,"nodeType":"ParameterList","parameters":[],"src":"4186:2:163"},"returnParameters":{"id":81915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81914,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81921,"src":"4210:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4210:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4209:9:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81931,"nodeType":"FunctionDefinition","src":"4267:95:163","nodes":[],"body":{"id":81930,"nodeType":"Block","src":"4320:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4337:17:163","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":81926,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4330:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4330:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81929,"nodeType":"ExpressionStatement","src":"4330:25:163"}]},"baseFunctions":[76778],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4276:11:163","parameters":{"id":81922,"nodeType":"ParameterList","parameters":[],"src":"4287:2:163"},"returnParameters":{"id":81925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81931,"src":"4311:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81923,"name":"uint256","nodeType":"ElementaryTypeName","src":"4311:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4310:9:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81942,"nodeType":"FunctionDefinition","src":"4368:125:163","nodes":[],"body":{"id":81941,"nodeType":"Block","src":"4451:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4468:17:163","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":81937,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4461:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4461:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81940,"nodeType":"ExpressionStatement","src":"4461:25:163"}]},"baseFunctions":[76789],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4377:18:163","parameters":{"id":81932,"nodeType":"ParameterList","parameters":[],"src":"4395:2:163"},"returnParameters":{"id":81936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81942,"src":"4419:30:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":81934,"nodeType":"UserDefinedTypeName","pathNode":{"id":81933,"name":"Gear.SymbioticContracts","nameLocations":["4419:4:163","4424:18:163"],"nodeType":"IdentifierPath","referencedDeclaration":86257,"src":"4419:23:163"},"referencedDeclaration":86257,"src":"4419:23:163","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86257_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4418:32:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81950,"nodeType":"FunctionDefinition","src":"4499:81:163","nodes":[],"body":{"id":81949,"nodeType":"Block","src":"4538:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4555:17:163","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":81945,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4548:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4548:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81948,"nodeType":"ExpressionStatement","src":"4548:25:163"}]},"baseFunctions":[76842],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4508:15:163","parameters":{"id":81943,"nodeType":"ParameterList","parameters":[],"src":"4523:2:163"},"returnParameters":{"id":81944,"nodeType":"ParameterList","parameters":[],"src":"4538:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81958,"nodeType":"FunctionDefinition","src":"4586:80:163","nodes":[],"body":{"id":81957,"nodeType":"Block","src":"4624:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4641:17:163","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":81953,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4634:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4634:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81956,"nodeType":"ExpressionStatement","src":"4634:25:163"}]},"baseFunctions":[76846],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4595:14:163","parameters":{"id":81951,"nodeType":"ParameterList","parameters":[],"src":"4609:2:163"},"returnParameters":{"id":81952,"nodeType":"ParameterList","parameters":[],"src":"4624:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81968,"nodeType":"FunctionDefinition","src":"4672:93:163","nodes":[],"body":{"id":81967,"nodeType":"Block","src":"4723:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4740:17:163","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":81963,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4733:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4733:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81966,"nodeType":"ExpressionStatement","src":"4733:25:163"}]},"baseFunctions":[76794],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4681:20:163","parameters":{"id":81961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81968,"src":"4702:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81959,"name":"address","nodeType":"ElementaryTypeName","src":"4702:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4701:9:163"},"returnParameters":{"id":81962,"nodeType":"ParameterList","parameters":[],"src":"4723:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81978,"nodeType":"FunctionDefinition","src":"4771:92:163","nodes":[],"body":{"id":81977,"nodeType":"Block","src":"4821:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4838:17:163","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":81973,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4831:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4831:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81976,"nodeType":"ExpressionStatement","src":"4831:25:163"}]},"baseFunctions":[76799],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4780:19:163","parameters":{"id":81971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81978,"src":"4800:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81969,"name":"address","nodeType":"ElementaryTypeName","src":"4800:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4799:9:163"},"returnParameters":{"id":81972,"nodeType":"ParameterList","parameters":[],"src":"4821:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81986,"nodeType":"FunctionDefinition","src":"4869:82:163","nodes":[],"body":{"id":81985,"nodeType":"Block","src":"4909:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4926:17:163","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":81981,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4919:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81984,"nodeType":"ExpressionStatement","src":"4919:25:163"}]},"baseFunctions":[76838],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4878:16:163","parameters":{"id":81979,"nodeType":"ParameterList","parameters":[],"src":"4894:2:163"},"returnParameters":{"id":81980,"nodeType":"ParameterList","parameters":[],"src":"4909:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81996,"nodeType":"FunctionDefinition","src":"4957:91:163","nodes":[],"body":{"id":81995,"nodeType":"Block","src":"5006:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5023:17:163","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":81991,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5016:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5016:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81994,"nodeType":"ExpressionStatement","src":"5016:25:163"}]},"baseFunctions":[76852],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"4966:18:163","parameters":{"id":81989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81996,"src":"4985:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81987,"name":"address","nodeType":"ElementaryTypeName","src":"4985:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4984:9:163"},"returnParameters":{"id":81990,"nodeType":"ParameterList","parameters":[],"src":"5006:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82012,"nodeType":"FunctionDefinition","src":"5054:134:163","nodes":[],"body":{"id":82011,"nodeType":"Block","src":"5146:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5163:17:163","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":82007,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5156:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5156:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82010,"nodeType":"ExpressionStatement","src":"5156:25:163"}]},"baseFunctions":[76890],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5063:25:163","parameters":{"id":82003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81998,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82012,"src":"5089:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81997,"name":"address","nodeType":"ElementaryTypeName","src":"5089:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82012,"src":"5098:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81999,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82002,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82012,"src":"5107:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5107:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5088:27:163"},"returnParameters":{"id":82006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82012,"src":"5137:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5137:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5136:9:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82027,"nodeType":"FunctionDefinition","src":"5194:150:163","nodes":[],"body":{"id":82026,"nodeType":"Block","src":"5302:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5319:17:163","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":82022,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5312:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5312:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82025,"nodeType":"ExpressionStatement","src":"5312:25:163"}]},"baseFunctions":[76901],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5203:23:163","parameters":{"id":82018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82027,"src":"5227:35:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":82014,"nodeType":"UserDefinedTypeName","pathNode":{"id":82013,"name":"Gear.StakerRewardsCommitment","nameLocations":["5227:4:163","5232:23:163"],"nodeType":"IdentifierPath","referencedDeclaration":86071,"src":"5227:28:163"},"referencedDeclaration":86071,"src":"5227:28:163","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":82017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82027,"src":"5264:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82016,"name":"uint48","nodeType":"ElementaryTypeName","src":"5264:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5226:45:163"},"returnParameters":{"id":82021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82027,"src":"5293:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5293:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5292:9:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82039,"nodeType":"FunctionDefinition","src":"5350:95:163","nodes":[],"body":{"id":82038,"nodeType":"Block","src":"5403:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5420:17:163","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":82034,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5413:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5413:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82037,"nodeType":"ExpressionStatement","src":"5413:25:163"}]},"baseFunctions":[76860],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5359:13:163","parameters":{"id":82032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82039,"src":"5373:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82028,"name":"address","nodeType":"ElementaryTypeName","src":"5373:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82039,"src":"5382:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82030,"name":"address","nodeType":"ElementaryTypeName","src":"5382:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5372:18:163"},"returnParameters":{"id":82033,"nodeType":"ParameterList","parameters":[],"src":"5403:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82049,"nodeType":"FunctionDefinition","src":"5451:85:163","nodes":[],"body":{"id":82048,"nodeType":"Block","src":"5494:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5511:17:163","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":82044,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5504:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5504:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82047,"nodeType":"ExpressionStatement","src":"5504:25:163"}]},"baseFunctions":[76872],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5460:12:163","parameters":{"id":82042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82049,"src":"5473:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82040,"name":"address","nodeType":"ElementaryTypeName","src":"5473:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:9:163"},"returnParameters":{"id":82043,"nodeType":"ParameterList","parameters":[],"src":"5494:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82059,"nodeType":"FunctionDefinition","src":"5542:84:163","nodes":[],"body":{"id":82058,"nodeType":"Block","src":"5584:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5601:17:163","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":82054,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5594:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5594:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82057,"nodeType":"ExpressionStatement","src":"5594:25:163"}]},"baseFunctions":[76878],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5551:11:163","parameters":{"id":82052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82059,"src":"5563:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82050,"name":"address","nodeType":"ElementaryTypeName","src":"5563:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5562:9:163"},"returnParameters":{"id":82053,"nodeType":"ParameterList","parameters":[],"src":"5584:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82069,"nodeType":"FunctionDefinition","src":"5632:88:163","nodes":[],"body":{"id":82068,"nodeType":"Block","src":"5678:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5695:17:163","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":82064,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5688:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5688:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82067,"nodeType":"ExpressionStatement","src":"5688:25:163"}]},"baseFunctions":[76866],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5641:15:163","parameters":{"id":82062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82061,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82069,"src":"5657:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82060,"name":"address","nodeType":"ElementaryTypeName","src":"5657:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5656:9:163"},"returnParameters":{"id":82063,"nodeType":"ParameterList","parameters":[],"src":"5678:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82083,"nodeType":"FunctionDefinition","src":"5726:117:163","nodes":[],"body":{"id":82082,"nodeType":"Block","src":"5801:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5818:17:163","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":82078,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5811:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5811:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82081,"nodeType":"ExpressionStatement","src":"5811:25:163"}]},"baseFunctions":[76820],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5735:18:163","parameters":{"id":82074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82083,"src":"5754:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82070,"name":"address","nodeType":"ElementaryTypeName","src":"5754:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82083,"src":"5763:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82072,"name":"uint48","nodeType":"ElementaryTypeName","src":"5763:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5753:17:163"},"returnParameters":{"id":82077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82083,"src":"5792:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82075,"name":"uint256","nodeType":"ElementaryTypeName","src":"5792:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5791:9:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82099,"nodeType":"FunctionDefinition","src":"5849:142:163","nodes":[],"body":{"id":82098,"nodeType":"Block","src":"5949:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5966:17:163","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":82094,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5959:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5959:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82097,"nodeType":"ExpressionStatement","src":"5959:25:163"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5858:25:163","parameters":{"id":82086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82085,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82099,"src":"5884:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82084,"name":"uint48","nodeType":"ElementaryTypeName","src":"5884:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5883:8:163"},"returnParameters":{"id":82093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82099,"src":"5913:16:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82087,"name":"address","nodeType":"ElementaryTypeName","src":"5913:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82088,"nodeType":"ArrayTypeName","src":"5913:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82099,"src":"5931:16:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":82090,"name":"uint256","nodeType":"ElementaryTypeName","src":"5931:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82091,"nodeType":"ArrayTypeName","src":"5931:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5912:36:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82111,"nodeType":"FunctionDefinition","src":"5997:98:163","nodes":[],"body":{"id":82110,"nodeType":"Block","src":"6053:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6070:17:163","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":82106,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6063:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6063:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82109,"nodeType":"ExpressionStatement","src":"6063:25:163"}]},"baseFunctions":[76827],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6006:12:163","parameters":{"id":82104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82111,"src":"6019:20:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":82101,"nodeType":"UserDefinedTypeName","pathNode":{"id":82100,"name":"SlashData","nameLocations":["6019:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":76713,"src":"6019:9:163"},"referencedDeclaration":76713,"src":"6019:9:163","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":82102,"nodeType":"ArrayTypeName","src":"6019:11:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6018:22:163"},"returnParameters":{"id":82105,"nodeType":"ParameterList","parameters":[],"src":"6053:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82123,"nodeType":"FunctionDefinition","src":"6101:104:163","nodes":[],"body":{"id":82122,"nodeType":"Block","src":"6163:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6180:17:163","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":82118,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6173:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82121,"nodeType":"ExpressionStatement","src":"6173:25:163"}]},"baseFunctions":[76834],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6110:12:163","parameters":{"id":82116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82123,"src":"6123:26:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":82113,"nodeType":"UserDefinedTypeName","pathNode":{"id":82112,"name":"SlashIdentifier","nameLocations":["6123:15:163"],"nodeType":"IdentifierPath","referencedDeclaration":76718,"src":"6123:15:163"},"referencedDeclaration":76718,"src":"6123:15:163","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":82114,"nodeType":"ArrayTypeName","src":"6123:17:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6122:28:163"},"returnParameters":{"id":82117,"nodeType":"ParameterList","parameters":[],"src":"6163:0:163"},"scope":82222,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82136,"nodeType":"FunctionDefinition","src":"6211:201:163","nodes":[],"body":{"id":82135,"nodeType":"Block","src":"6281:131:163","nodes":[],"statements":[{"assignments":[82130],"declarations":[{"constant":false,"id":82130,"mutability":"mutable","name":"slot","nameLocation":"6299:4:163","nodeType":"VariableDeclaration","scope":82135,"src":"6291:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6291:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82133,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82131,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82161,"src":"6306:15:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6306:17:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6291:32:163"},{"AST":{"nativeSrc":"6359:47:163","nodeType":"YulBlock","src":"6359:47:163","statements":[{"nativeSrc":"6373:23:163","nodeType":"YulAssignment","src":"6373:23:163","value":{"name":"slot","nativeSrc":"6392:4:163","nodeType":"YulIdentifier","src":"6392:4:163"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6373:15:163","nodeType":"YulIdentifier","src":"6373:15:163"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82127,"isOffset":false,"isSlot":true,"src":"6373:15:163","suffix":"slot","valueSize":1},{"declaration":82130,"isOffset":false,"isSlot":false,"src":"6392:4:163","valueSize":1}],"flags":["memory-safe"],"id":82134,"nodeType":"InlineAssembly","src":"6334:72:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6220:8:163","parameters":{"id":82124,"nodeType":"ParameterList","parameters":[],"src":"6228:2:163"},"returnParameters":{"id":82128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82127,"mutability":"mutable","name":"middleware","nameLocation":"6269:10:163","nodeType":"VariableDeclaration","scope":82136,"src":"6253:26:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":82126,"nodeType":"UserDefinedTypeName","pathNode":{"id":82125,"name":"Storage","nameLocations":["6253:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"6253:7:163"},"referencedDeclaration":76699,"src":"6253:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6252:28:163"},"scope":82222,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82149,"nodeType":"FunctionDefinition","src":"6418:209:163","nodes":[],"body":{"id":82148,"nodeType":"Block","src":"6494:133:163","nodes":[],"statements":[{"assignments":[82143],"declarations":[{"constant":false,"id":82143,"mutability":"mutable","name":"slot","nameLocation":"6512:4:163","nodeType":"VariableDeclaration","scope":82148,"src":"6504:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6504:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82146,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82144,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82173,"src":"6519:18:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6519:20:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6504:35:163"},{"AST":{"nativeSrc":"6574:47:163","nodeType":"YulBlock","src":"6574:47:163","statements":[{"nativeSrc":"6588:23:163","nodeType":"YulAssignment","src":"6588:23:163","value":{"name":"slot","nativeSrc":"6607:4:163","nodeType":"YulIdentifier","src":"6607:4:163"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"6588:15:163","nodeType":"YulIdentifier","src":"6588:15:163"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82140,"isOffset":false,"isSlot":true,"src":"6588:15:163","suffix":"slot","valueSize":1},{"declaration":82143,"isOffset":false,"isSlot":false,"src":"6607:4:163","valueSize":1}],"flags":["memory-safe"],"id":82147,"nodeType":"InlineAssembly","src":"6549:72:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6427:11:163","parameters":{"id":82137,"nodeType":"ParameterList","parameters":[],"src":"6438:2:163"},"returnParameters":{"id":82141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82140,"mutability":"mutable","name":"poaStorage","nameLocation":"6482:10:163","nodeType":"VariableDeclaration","scope":82149,"src":"6463:29:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$77174_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":82139,"nodeType":"UserDefinedTypeName","pathNode":{"id":82138,"name":"POAStorage","nameLocations":["6463:10:163"],"nodeType":"IdentifierPath","referencedDeclaration":77174,"src":"6463:10:163"},"referencedDeclaration":77174,"src":"6463:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$77174_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6462:31:163"},"scope":82222,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82161,"nodeType":"FunctionDefinition","src":"6633:128:163","nodes":[],"body":{"id":82160,"nodeType":"Block","src":"6691:70:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82156,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81676,"src":"6735:12:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82154,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"6708:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":82155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6720:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"6708:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6708:40:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6749:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"6708:46:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82153,"id":82159,"nodeType":"Return","src":"6701:53:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6642:15:163","parameters":{"id":82150,"nodeType":"ParameterList","parameters":[],"src":"6657:2:163"},"returnParameters":{"id":82153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82161,"src":"6682:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6682:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6681:9:163"},"scope":82222,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82173,"nodeType":"FunctionDefinition","src":"6767:135:163","nodes":[],"body":{"id":82172,"nodeType":"Block","src":"6828:74:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82168,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81679,"src":"6872:16:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82166,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"6845:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":82167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6857:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"6845:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6845:44:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6890:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"6845:50:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82165,"id":82171,"nodeType":"Return","src":"6838:57:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6776:18:163","parameters":{"id":82162,"nodeType":"ParameterList","parameters":[],"src":"6794:2:163"},"returnParameters":{"id":82165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82164,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82173,"src":"6819:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82163,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6819:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6818:9:163"},"scope":82222,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82197,"nodeType":"FunctionDefinition","src":"6908:200:163","nodes":[],"body":{"id":82196,"nodeType":"Block","src":"6976:132:163","nodes":[],"statements":[{"assignments":[82181],"declarations":[{"constant":false,"id":82181,"mutability":"mutable","name":"slot","nameLocation":"6994:4:163","nodeType":"VariableDeclaration","scope":82196,"src":"6986:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6986:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82186,"initialValue":{"arguments":[{"id":82184,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82175,"src":"7028:9:163","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82182,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"7001:14:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":82183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7016:11:163","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"7001:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7001:37:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6986:52:163"},{"expression":{"id":82194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82190,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81676,"src":"7075:12:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82187,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"7048:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":82189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7060:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"7048:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7048:40:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7089:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"7048:46:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82193,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82181,"src":"7097:4:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7048:53:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82195,"nodeType":"ExpressionStatement","src":"7048:53:163"}]},"implemented":true,"kind":"function","modifiers":[{"id":82178,"kind":"modifierInvocation","modifierName":{"id":82177,"name":"onlyOwner","nameLocations":["6966:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"6966:9:163"},"nodeType":"ModifierInvocation","src":"6966:9:163"}],"name":"_setStorageSlot","nameLocation":"6917:15:163","parameters":{"id":82176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82175,"mutability":"mutable","name":"namespace","nameLocation":"6947:9:163","nodeType":"VariableDeclaration","scope":82197,"src":"6933:23:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82174,"name":"string","nodeType":"ElementaryTypeName","src":"6933:6:163","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6932:25:163"},"returnParameters":{"id":82179,"nodeType":"ParameterList","parameters":[],"src":"6976:0:163"},"scope":82222,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82221,"nodeType":"FunctionDefinition","src":"7114:207:163","nodes":[],"body":{"id":82220,"nodeType":"Block","src":"7185:136:163","nodes":[],"statements":[{"assignments":[82205],"declarations":[{"constant":false,"id":82205,"mutability":"mutable","name":"slot","nameLocation":"7203:4:163","nodeType":"VariableDeclaration","scope":82220,"src":"7195:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7195:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82210,"initialValue":{"arguments":[{"id":82208,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82199,"src":"7237:9:163","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82206,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"7210:14:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":82207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7225:11:163","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"7210:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7210:37:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7195:52:163"},{"expression":{"id":82218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82214,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81679,"src":"7284:16:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82211,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"7257:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":82213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7269:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"7257:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7257:44:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7302:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"7257:50:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82217,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"7310:4:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7257:57:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82219,"nodeType":"ExpressionStatement","src":"7257:57:163"}]},"implemented":true,"kind":"function","modifiers":[{"id":82202,"kind":"modifierInvocation","modifierName":{"id":82201,"name":"onlyOwner","nameLocations":["7175:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"7175:9:163"},"nodeType":"ModifierInvocation","src":"7175:9:163"}],"name":"_setPoaStorageSlot","nameLocation":"7123:18:163","parameters":{"id":82200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82199,"mutability":"mutable","name":"namespace","nameLocation":"7156:9:163","nodeType":"VariableDeclaration","scope":82221,"src":"7142:23:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82198,"name":"string","nodeType":"ElementaryTypeName","src":"7142:6:163","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7141:25:163"},"returnParameters":{"id":82203,"nodeType":"ParameterList","parameters":[],"src":"7185:0:163"},"scope":82222,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":81664,"name":"IMiddleware","nameLocations":["831:11:163"],"nodeType":"IdentifierPath","referencedDeclaration":76902,"src":"831:11:163"},"id":81665,"nodeType":"InheritanceSpecifier","src":"831:11:163"},{"baseName":{"id":81666,"name":"IPOAMiddleware","nameLocations":["844:14:163"],"nodeType":"IdentifierPath","referencedDeclaration":77182,"src":"844:14:163"},"id":81667,"nodeType":"InheritanceSpecifier","src":"844:14:163"},{"baseName":{"id":81668,"name":"OwnableUpgradeable","nameLocations":["860:18:163"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"860:18:163"},"id":81669,"nodeType":"InheritanceSpecifier","src":"860:18:163"},{"baseName":{"id":81670,"name":"ReentrancyGuardTransient","nameLocations":["880:24:163"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"880:24:163"},"id":81671,"nodeType":"InheritanceSpecifier","src":"880:24:163"},{"baseName":{"id":81672,"name":"UUPSUpgradeable","nameLocations":["906:15:163"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"906:15:163"},"id":81673,"nodeType":"InheritanceSpecifier","src":"906:15:163"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82222,2079,376,6594,19465,20363,1913,77182,76902],"name":"POAMiddleware","nameLocation":"814:13:163","scope":82223,"usedErrors":[995,1008,1662,1665,1936,1941,3201,6168,6514,19301,19306,76523,76526,76529,76532,76535,76538,76541,76544,76547,76550,76553,76556,76559,76562,76565,76568,76571,76574,76577,76580,76583,76586,76589,76592,76595,76598,76601,76604,76607,76610,76613,76616,76619,76622,76625,76628,76631],"usedEvents":[324,1670,19312]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":163} \ 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":"0x60a080604052346100c257306080525f5160206112375f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161117090816100c78239608051818181610bd50152610caf0152f35b6001600160401b0319166001600160401b039081175f5160206112375f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610e805780630a71094c14610e2b5780632633b70f146106025780632acde09814610238578063373bba1f146102385780633ccce789146106025780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c2957806352d1902d14610bc35780636c2eb350146109e85780636d1064eb146106025780636e5c793214610913578063709d06ae14610238578063715018a6146108ac578063729e2f361461089357806379a8b245146102385780637fbe95b51461077257806386c241a1146106025780638da5cb5b1461073e5780639300c92614610607578063936f433014610602578063945cf2dd1461023857806396115bc2146106025780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111305f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ea2565b610231611005565b610f94565b005b610265565b3461020957604036600319011261020957610256610ea2565b5061025f610f31565b50610f5d565b34610209575f36600319011215610f5d575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f1c565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610f5d575f80fd5b34610209575f3660031901126102095760408051906103c68183610efb565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111505f395f51905f52546001600160401b0360ff8260401c16159116801590816105fa575b60011490816105f0575b1590816105e7575b506105d8578060016001600160401b03195f5160206111505f395f51905f525416175f5160206111505f395f51905f52556105a8575b6004356001600160a01b0381168103610209576104b0906104a8611038565b610231611038565b61050a6040516104c1604082610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104f3611005565b80516020918201205f19015f9081522060ff191690565b5f5160206111305f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055657005b60ff60401b195f5160206111505f395f51905f5254165f5160206111505f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111505f395f51905f525416175f5160206111505f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610ee2565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064281610f46565b916106506040519384610efb565b818352602083016024819360051b8301019136831161020957602401905b82821061072657505050610680611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b82116103255782548284558083106106fc575b50915f5260205f20915f5b8281106106df57005b81516001600160a01b0316818501556020909101906001016106d6565b835f52828060205f20019103905f5b8281106107195750506106cb565b5f8282015560010161070b565b6020809161073384610ece565b81520191019061066e565b34610209575f366003190112610209575f5160206110f05f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107ed81610f46565b916107fb6040519384610efb565b818352602060048185019360061b830101019036821161020957602401915b8183106108485785604061083d6044888885526024810135602086015201610ece565b91015261025f610f31565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261087e86610ece565b8152828601358382015281520192019161081a565b346102095760603660031901126102095761025f610ea2565b34610209575f366003190112610209576108c4611005565b5f5160206110f05f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102095760403660031901126102095761092c610f1c565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109c9575050508161097e910382610efb565b604051918291602083019060208452518091526040830191905f5b8181106109a7575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610999565b82546001600160a01b0316845260209093019260019283019201610968565b34610209575f36600319011261020957610a00611005565b5f5160206111505f395f51905f525460ff8160401c16908115610bae575b506105d8575f5160206111505f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206110f05f395f51905f5254610a70906001600160a01b03166104a8611038565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111305f395f51905f52546040906007610ae78351610ab68582610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104f3611005565b91825f5160206111305f395f51905f5255610b438451610b08606082610efb565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104f3611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111505f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a1e565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a5760206040515f5160206111105f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c3d610ea2565b602435906001600160401b03821161020957366023830112156102095781600401356001600160401b0381116103255760405192610c85601f8301601f191660200185610efb565b818452366024838301011161020957815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e09575b50610c1a57610ce7611005565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610dd5575b50610d295783634c9c8ce360e01b5f5260045260245ffd5b805f5160206111105f395f51905f52859203610dc35750823b15610db1575f5160206111105f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610d995761023691611063565b505034610da257005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e01575b81610df160209383610efb565b8101031261020957519085610d11565b3d9150610de4565b5f5160206111105f395f51905f52546001600160a01b03161415905083610cda565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610f5d575f80fd5b3461020957604036600319011261020957610e99610ea2565b5061025f610eb8565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ea2565b90601f801991011681019081106001600160401b0382111761032557604052565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015610ff2575f5160206110f05f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206110f05f395f51905f52546001600160a01b0316330361102557565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111505f395f51905f525460401c161561105457565b631afcd79f60e31b5f5260045ffd5b905f8091602081519101845af480806110dc575b156110975750506040513d81523d5f602083013e60203d82010160405290565b156110bc57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d156110cd576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806110775750813b151561107756fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6518:163:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;805:6518:163;;7983:34:18;7979:146;;-1:-1:-1;805:6518:163;;;;;;;;1076:13:19;805:6518:163;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;8085:29:18;;805:6518:163;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;805:6518:163;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610e805780630a71094c14610e2b5780632633b70f146106025780632acde09814610238578063373bba1f146102385780633ccce789146106025780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c2957806352d1902d14610bc35780636c2eb350146109e85780636d1064eb146106025780636e5c793214610913578063709d06ae14610238578063715018a6146108ac578063729e2f361461089357806379a8b245146102385780637fbe95b51461077257806386c241a1146106025780638da5cb5b1461073e5780639300c92614610607578063936f433014610602578063945cf2dd1461023857806396115bc2146106025780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111305f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ea2565b610231611005565b610f94565b005b610265565b3461020957604036600319011261020957610256610ea2565b5061025f610f31565b50610f5d565b34610209575f36600319011215610f5d575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f1c565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610f5d575f80fd5b34610209575f3660031901126102095760408051906103c68183610efb565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111505f395f51905f52546001600160401b0360ff8260401c16159116801590816105fa575b60011490816105f0575b1590816105e7575b506105d8578060016001600160401b03195f5160206111505f395f51905f525416175f5160206111505f395f51905f52556105a8575b6004356001600160a01b0381168103610209576104b0906104a8611038565b610231611038565b61050a6040516104c1604082610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104f3611005565b80516020918201205f19015f9081522060ff191690565b5f5160206111305f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055657005b60ff60401b195f5160206111505f395f51905f5254165f5160206111505f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111505f395f51905f525416175f5160206111505f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610ee2565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064281610f46565b916106506040519384610efb565b818352602083016024819360051b8301019136831161020957602401905b82821061072657505050610680611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b82116103255782548284558083106106fc575b50915f5260205f20915f5b8281106106df57005b81516001600160a01b0316818501556020909101906001016106d6565b835f52828060205f20019103905f5b8281106107195750506106cb565b5f8282015560010161070b565b6020809161073384610ece565b81520191019061066e565b34610209575f366003190112610209575f5160206110f05f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107ed81610f46565b916107fb6040519384610efb565b818352602060048185019360061b830101019036821161020957602401915b8183106108485785604061083d6044888885526024810135602086015201610ece565b91015261025f610f31565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261087e86610ece565b8152828601358382015281520192019161081a565b346102095760603660031901126102095761025f610ea2565b34610209575f366003190112610209576108c4611005565b5f5160206110f05f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102095760403660031901126102095761092c610f1c565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109c9575050508161097e910382610efb565b604051918291602083019060208452518091526040830191905f5b8181106109a7575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610999565b82546001600160a01b0316845260209093019260019283019201610968565b34610209575f36600319011261020957610a00611005565b5f5160206111505f395f51905f525460ff8160401c16908115610bae575b506105d8575f5160206111505f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206110f05f395f51905f5254610a70906001600160a01b03166104a8611038565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111305f395f51905f52546040906007610ae78351610ab68582610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104f3611005565b91825f5160206111305f395f51905f5255610b438451610b08606082610efb565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104f3611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111505f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a1e565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a5760206040515f5160206111105f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c3d610ea2565b602435906001600160401b03821161020957366023830112156102095781600401356001600160401b0381116103255760405192610c85601f8301601f191660200185610efb565b818452366024838301011161020957815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e09575b50610c1a57610ce7611005565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610dd5575b50610d295783634c9c8ce360e01b5f5260045260245ffd5b805f5160206111105f395f51905f52859203610dc35750823b15610db1575f5160206111105f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610d995761023691611063565b505034610da257005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e01575b81610df160209383610efb565b8101031261020957519085610d11565b3d9150610de4565b5f5160206111105f395f51905f52546001600160a01b03161415905083610cda565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610f5d575f80fd5b3461020957604036600319011261020957610e99610ea2565b5061025f610eb8565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ea2565b90601f801991011681019081106001600160401b0382111761032557604052565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015610ff2575f5160206110f05f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206110f05f395f51905f52546001600160a01b0316330361102557565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111505f395f51905f525460401c161561105457565b631afcd79f60e31b5f5260045ffd5b905f8091602081519101845af480806110dc575b156110975750506040513d81523d5f602083013e60203d82010160405290565b156110bc57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d156110cd576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806110775750813b151561107756fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6518:163:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:25;805:6518;4461:25;;;805:6518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;2911:17;;805:6518;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;2378:1:52;805:6518:163;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;805:6518:163;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:25;;;;;;;805:6518;4461:25;;805:6518;;;;;;;;;;-1:-1:-1;;;805:6518:163;;;;;;;4461:25;;;;805:6518;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;;;4301:16:18;805:6518:163;;4724:16:18;;:34;;;;805:6518:163;4803:1:18;4788:16;:50;;;;805:6518:163;4853:13:18;:30;;;;805:6518:163;4849:91:18;;;805:6518:163;4803:1:18;-1:-1:-1;;;;;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;4977:67:18;;805:6518:163;;;-1:-1:-1;;;;;805:6518:163;;;;;;6959:1:18;;6891:76;;:::i;:::-;;;:::i;6959:1::-;7001:37:163;805:6518;;;;;;:::i;:::-;;;;;;;;;2324:62:52;;:::i;:::-;1794:178:36;;;;;;;-1:-1:-1;;1794:178:36;;;;;;-1:-1:-1;;1794:178:36;;1701:277;7001:37:163;-1:-1:-1;;;;;;;;;;;1075:66:163;;;1732:14;805:6518;;-1:-1:-1;;;;;805:6518:163;;;;;;1721:8;;805:6518;;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;;;;;;;5064:101:18;;805:6518:163;5064:101:18;-1:-1:-1;;;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;;;;;;805:6518:163;5140:14:18;805:6518:163;;;4803:1:18;805:6518:163;;5140:14:18;805:6518:163;4977:67:18;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;4977:67:18;;4849:91;6496:23;;;805:6518:163;4906:23:18;805:6518:163;;4906:23:18;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;805:6518:163;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:62:52;;;;;:::i;:::-;1302:66:163;805:6518;;;;-1:-1:-1;;;;;805:6518:163;;;;-1:-1:-1;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;805:6518:163;;;;;;;-1:-1:-1;;;;;805:6518:163;3996:40:52;805:6518:163;;3996:40:52;805:6518:163;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;1302:66;805:6518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;-1:-1:-1;805:6518:163;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6518:163;;;;;;6429:44:18;;;;;805:6518:163;6425:105:18;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;805:6518:163;;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;6959:1:18;;-1:-1:-1;;;;;805:6518:163;6891:76:18;;:::i;6959:1::-;6654:20;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;2175:17;7001:37;805:6518;;;;;;:::i;:::-;;;;;;;;;2324:62:52;;:::i;7001:37:163:-;1075:66;;-1:-1:-1;;;;;;;;;;;1075:66:163;7210:37;805:6518;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;805:6518:163;;;;2324:62:52;;:::i;7210:37:163:-;1302:66;1075;2175:17;;805:6518;2155:17;;805:6518;;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;805:6518:163;;;;1881:1;805:6518;;6654:20:18;805:6518:163;6429:44:18;1881:1:163;805:6518;;-1:-1:-1;;;;;805:6518:163;6448:25:18;;6429:44;;;805:6518:163;;;;;;-1:-1:-1;;805:6518:163;;;;4840:6:19;-1:-1:-1;;;;;805:6518:163;4831:4:19;4823:23;4819:145;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;4819:145:19;4594:29;;;805:6518:163;4924:29:19;805:6518:163;;4924:29:19;805:6518:163;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4417:6:19;805:6518:163;4408:4:19;4400:23;;;:120;;;;805:6518:163;4383:251:19;;;2324:62:52;;:::i;:::-;805:6518:163;;-1:-1:-1;;;5881:52:19;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;5881:52:19;;805:6518:163;;5881:52:19;;;805:6518:163;-1:-1:-1;5877:437:19;;1805:47:11;;;;805:6518:163;6243:60:19;805:6518:163;;;;6243:60:19;5877:437;5975:40;-1:-1:-1;;;;;;;;;;;5975:40:19;;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;805:6518:163;;;;;2407:36:11;-1:-1:-1;;2407:36:11;805:6518:163;;2458:15:11;:11;;2489:53;;;:::i;2454:148::-;6185:9;;;6181:70;;805:6518:163;6181:70:11;6221:19;;;805:6518:163;6221:19:11;805:6518:163;;6221:19:11;1744:119;1805:47;;;805:6518:163;1805:47:11;805:6518:163;;;;1805:47:11;5971:120:19;6042:34;;;805:6518:163;6042:34:19;805:6518:163;;;;6042:34:19;5881:52;;;;805:6518:163;5881:52:19;;805:6518:163;5881:52:19;;;;;;805:6518:163;5881:52:19;;;:::i;:::-;;;805:6518:163;;;;;5881:52:19;;;;;;;-1:-1:-1;5881:52:19;;4400:120;-1:-1:-1;;;;;;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;4478:42:19;;;-1:-1:-1;4400:120:19;;;805:6518:163;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6518:163;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;805:6518:163;;;;;;:::o;:::-;;;-1:-1:-1;;;;;805:6518:163;;;;;;:::o;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6518:163;;;;;;;;;:::o;5350:95::-;805:6518;;-1:-1:-1;;;5413:25:163;;805:6518;5413:25;;;805:6518;;;;;;-1:-1:-1;;;805:6518:163;;;;;;4461:25;3426:215:52;-1:-1:-1;;;;;805:6518:163;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;805:6518:163;;;;;;;-1:-1:-1;;;;;805:6518:163;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;805:6518:163;;3530:1:52;3555:31;2679:162;-1:-1:-1;;;;;;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;805:6518:163;;-1:-1:-1;2784:40:52;7082:141:18;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;805:6518:163;;;;5045:24:25;805:6518:163;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;5189:169;;;-1:-1:-1;5189:169:32;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"1929":[{"start":3029,"length":32},{"start":3247,"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.35+commit.47b9dedd\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e\",\"dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59\",\"dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0x32f72886b18a7674ebb7de194c7cbaa263805859a9103b17993de589c0756588\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2e5939801a7d1bdec092e3029cd75a0abffda28f06f2f3624eea9981d396182b\",\"dweb:/ipfs/QmP3jPRTzDWRLNvA9ySNbHXH8mnZeXXxJK6mMzkgaDo1MH\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x7ebe35c7acd8901b1066e709a2a7f94cc22bfe0f1926d277dc43525c3dd799e7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6081b73fa73ebd12cdd7d4bb0dd9d3c257345b310f6f9c4471eee23724efee92\",\"dweb:/ipfs/QmNrQMGwiCaSuMdLC6cjmG3o2Cg5if7JgNgHKXLc7dZze9\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5\",\"dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd\",\"dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol":{"keccak256":"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402","urls":["bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e","dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c","urls":["bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59","dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IPOAMiddleware.sol":{"keccak256":"0x32f72886b18a7674ebb7de194c7cbaa263805859a9103b17993de589c0756588","urls":["bzz-raw://2e5939801a7d1bdec092e3029cd75a0abffda28f06f2f3624eea9981d396182b","dweb:/ipfs/QmP3jPRTzDWRLNvA9ySNbHXH8mnZeXXxJK6mMzkgaDo1MH"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/POAMiddleware.sol":{"keccak256":"0x7ebe35c7acd8901b1066e709a2a7f94cc22bfe0f1926d277dc43525c3dd799e7","urls":["bzz-raw://6081b73fa73ebd12cdd7d4bb0dd9d3c257345b310f6f9c4471eee23724efee92","dweb:/ipfs/QmNrQMGwiCaSuMdLC6cjmG3o2Cg5if7JgNgHKXLc7dZze9"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a","urls":["bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5","dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153","urls":["bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd","dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":82377,"exportedSymbols":{"Gear":[87300],"IMiddleware":[76902],"IPOAMiddleware":[77187],"MapWithTimeData":[87588],"OwnableUpgradeable":[19465],"POAMiddleware":[82376],"ReentrancyGuardTransient":[6594],"SlotDerivation":[6724],"StorageSlot":[6848],"UUPSUpgradeable":[2079]},"nodeType":"SourceUnit","src":"114:7210:163","nodes":[{"id":81799,"nodeType":"PragmaDirective","src":"114:24:163","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":81801,"nodeType":"ImportDirective","src":"140:101:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82377,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":81800,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81803,"nodeType":"ImportDirective","src":"242:88:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82377,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":81802,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"250:15:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81805,"nodeType":"ImportDirective","src":"331:100:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":82377,"sourceUnit":6595,"symbolAliases":[{"foreign":{"id":81804,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"339:24:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81807,"nodeType":"ImportDirective","src":"432:80:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":82377,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":81806,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"440:14:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81809,"nodeType":"ImportDirective","src":"513:74:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":82377,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":81808,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"521:11:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81811,"nodeType":"ImportDirective","src":"588:48:163","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":82377,"sourceUnit":76903,"symbolAliases":[{"foreign":{"id":81810,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"596:11:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81813,"nodeType":"ImportDirective","src":"637:54:163","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":82377,"sourceUnit":77188,"symbolAliases":[{"foreign":{"id":81812,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77187,"src":"645:14:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81815,"nodeType":"ImportDirective","src":"692:44:163","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82377,"sourceUnit":87301,"symbolAliases":[{"foreign":{"id":81814,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"700:4:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81817,"nodeType":"ImportDirective","src":"737:66:163","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":82377,"sourceUnit":87589,"symbolAliases":[{"foreign":{"id":81816,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87588,"src":"745:15:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82376,"nodeType":"ContractDefinition","src":"805:6518:163","nodes":[{"id":81830,"nodeType":"VariableDeclaration","src":"1035:106:163","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1060:12:163","scope":82376,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1035:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":81829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1075:66:163","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":81833,"nodeType":"VariableDeclaration","src":"1258:110:163","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1283:16:163","scope":82376,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1258:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":81832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1302:66:163","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":81841,"nodeType":"FunctionDefinition","src":"1443:53:163","nodes":[],"body":{"id":81840,"nodeType":"Block","src":"1457:39:163","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81837,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"1467:20:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":81838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1467:22:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81839,"nodeType":"ExpressionStatement","src":"1467:22:163"}]},"documentation":{"id":81834,"nodeType":"StructuredDocumentation","src":"1375:63:163","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81835,"nodeType":"ParameterList","parameters":[],"src":"1454:2:163"},"returnParameters":{"id":81836,"nodeType":"ParameterList","parameters":[],"src":"1457:0:163"},"scope":82376,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81872,"nodeType":"FunctionDefinition","src":"1502:251:163","nodes":[],"body":{"id":81871,"nodeType":"Block","src":"1570:183:163","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":81850,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81844,"src":"1595:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":81851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1603:5:163","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":76633,"src":"1595:13:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81849,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"1580:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":81852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1580:29:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81853,"nodeType":"ExpressionStatement","src":"1580:29:163"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":81855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1636:33:163","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":81854,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82351,"src":"1620:15:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1620:50:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81857,"nodeType":"ExpressionStatement","src":"1620:50:163"},{"assignments":[81860],"declarations":[{"constant":false,"id":81860,"mutability":"mutable","name":"$","nameLocation":"1696:1:163","nodeType":"VariableDeclaration","scope":81871,"src":"1680:17:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81859,"nodeType":"UserDefinedTypeName","pathNode":{"id":81858,"name":"Storage","nameLocations":["1680:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"1680:7:163"},"referencedDeclaration":76699,"src":"1680:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":81863,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81861,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"1700:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1700:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1680:30:163"},{"expression":{"id":81869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81864,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"1721:1:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1723:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"1721:8:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81867,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81844,"src":"1732:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":81868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1740:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76657,"src":"1732:14:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1721:25:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81870,"nodeType":"ExpressionStatement","src":"1721:25:163"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":81847,"kind":"modifierInvocation","modifierName":{"id":81846,"name":"initializer","nameLocations":["1558:11:163"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"1558:11:163"},"nodeType":"ModifierInvocation","src":"1558:11:163"}],"name":"initialize","nameLocation":"1511:10:163","parameters":{"id":81845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81844,"mutability":"mutable","name":"_params","nameLocation":"1542:7:163","nodeType":"VariableDeclaration","scope":81872,"src":"1522:27:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":81843,"nodeType":"UserDefinedTypeName","pathNode":{"id":81842,"name":"InitParams","nameLocations":["1522:10:163"],"nodeType":"IdentifierPath","referencedDeclaration":76661,"src":"1522:10:163"},"referencedDeclaration":76661,"src":"1522:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$76661_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"1521:29:163"},"returnParameters":{"id":81848,"nodeType":"ParameterList","parameters":[],"src":"1570:0:163"},"scope":82376,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81914,"nodeType":"FunctionDefinition","src":"1826:373:163","nodes":[],"body":{"id":81913,"nodeType":"Block","src":"1884:315:163","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":81882,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"1909:5:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1909:7:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81881,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"1894:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":81884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1894:23:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81885,"nodeType":"ExpressionStatement","src":"1894:23:163"},{"assignments":[81888],"declarations":[{"constant":false,"id":81888,"mutability":"mutable","name":"oldStorage","nameLocation":"1944:10:163","nodeType":"VariableDeclaration","scope":81913,"src":"1928:26:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81887,"nodeType":"UserDefinedTypeName","pathNode":{"id":81886,"name":"Storage","nameLocations":["1928:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"1928:7:163"},"referencedDeclaration":76699,"src":"1928:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":81891,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81889,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"1957:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1957:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1928:39:163"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":81893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1994:33:163","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":81892,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82351,"src":"1978:15:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:50:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81895,"nodeType":"ExpressionStatement","src":"1978:50:163"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":81897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2057:36:163","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":81896,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82375,"src":"2038:18:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:56:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81899,"nodeType":"ExpressionStatement","src":"2038:56:163"},{"assignments":[81902],"declarations":[{"constant":false,"id":81902,"mutability":"mutable","name":"newStorage","nameLocation":"2121:10:163","nodeType":"VariableDeclaration","scope":81913,"src":"2105:26:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81901,"nodeType":"UserDefinedTypeName","pathNode":{"id":81900,"name":"Storage","nameLocations":["2105:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"2105:7:163"},"referencedDeclaration":76699,"src":"2105:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":81905,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81903,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"2134:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2105:39:163"},{"expression":{"id":81911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81906,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81902,"src":"2155:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2166:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"2155:17:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81909,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"2175:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2186:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"2175:17:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2155:37:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81912,"nodeType":"ExpressionStatement","src":"2155:37:163"}]},"documentation":{"id":81873,"nodeType":"StructuredDocumentation","src":"1759:62:163","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":81876,"kind":"modifierInvocation","modifierName":{"id":81875,"name":"onlyOwner","nameLocations":["1857:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"1857:9:163"},"nodeType":"ModifierInvocation","src":"1857:9:163"},{"arguments":[{"hexValue":"32","id":81878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1881:1:163","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":81879,"kind":"modifierInvocation","modifierName":{"id":81877,"name":"reinitializer","nameLocations":["1867:13:163"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"1867:13:163"},"nodeType":"ModifierInvocation","src":"1867:16:163"}],"name":"reinitialize","nameLocation":"1835:12:163","parameters":{"id":81874,"nodeType":"ParameterList","parameters":[],"src":"1847:2:163"},"returnParameters":{"id":81880,"nodeType":"ParameterList","parameters":[],"src":"1884:0:163"},"scope":82376,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81924,"nodeType":"FunctionDefinition","src":"2364:84:163","nodes":[],"body":{"id":81923,"nodeType":"Block","src":"2446:2:163","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":81915,"nodeType":"StructuredDocumentation","src":"2205:154:163","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":81921,"kind":"modifierInvocation","modifierName":{"id":81920,"name":"onlyOwner","nameLocations":["2436:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2436:9:163"},"nodeType":"ModifierInvocation","src":"2436:9:163"}],"name":"_authorizeUpgrade","nameLocation":"2373:17:163","overrides":{"id":81919,"nodeType":"OverrideSpecifier","overrides":[],"src":"2427:8:163"},"parameters":{"id":81918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81917,"mutability":"mutable","name":"newImplementation","nameLocation":"2399:17:163","nodeType":"VariableDeclaration","scope":81924,"src":"2391:25:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81916,"name":"address","nodeType":"ElementaryTypeName","src":"2391:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2390:27:163"},"returnParameters":{"id":81922,"nodeType":"ParameterList","parameters":[],"src":"2446:0:163"},"scope":82376,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":81940,"nodeType":"FunctionDefinition","src":"2579:124:163","nodes":[],"body":{"id":81939,"nodeType":"Block","src":"2650:53:163","nodes":[],"statements":[{"expression":{"id":81937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81933,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82303,"src":"2660:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$77179_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":81934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2660:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$77179_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":81935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2674:9:163","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":77178,"src":"2660:23:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81936,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81928,"src":"2686:10:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2660:36:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":81938,"nodeType":"ExpressionStatement","src":"2660:36:163"}]},"baseFunctions":[77186],"documentation":{"id":81925,"nodeType":"StructuredDocumentation","src":"2454:120:163","text":" @dev Sets validators for POA middleware.\n @param validators The addresses of validators to set."},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":81931,"kind":"modifierInvocation","modifierName":{"id":81930,"name":"onlyOwner","nameLocations":["2640:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2640:9:163"},"nodeType":"ModifierInvocation","src":"2640:9:163"}],"name":"setValidators","nameLocation":"2588:13:163","parameters":{"id":81929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81928,"mutability":"mutable","name":"validators","nameLocation":"2619:10:163","nodeType":"VariableDeclaration","scope":81940,"src":"2602:27:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81926,"name":"address","nodeType":"ElementaryTypeName","src":"2602:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81927,"nodeType":"ArrayTypeName","src":"2602:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2601:29:163"},"returnParameters":{"id":81932,"nodeType":"ParameterList","parameters":[],"src":"2650:0:163"},"scope":82376,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81955,"nodeType":"FunctionDefinition","src":"2709:129:163","nodes":[],"body":{"id":81954,"nodeType":"Block","src":"2791:47:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81950,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82303,"src":"2808:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$77179_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":81951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2808:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$77179_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":81952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2822:9:163","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":77178,"src":"2808:23:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":81949,"id":81953,"nodeType":"Return","src":"2801:30:163"}]},"baseFunctions":[76810],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2718:14:163","parameters":{"id":81945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81955,"src":"2733:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81941,"name":"uint48","nodeType":"ElementaryTypeName","src":"2733:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":81944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81955,"src":"2741:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81943,"name":"uint256","nodeType":"ElementaryTypeName","src":"2741:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2732:17:163"},"returnParameters":{"id":81949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81955,"src":"2773:16:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81946,"name":"address","nodeType":"ElementaryTypeName","src":"2773:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81947,"nodeType":"ArrayTypeName","src":"2773:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2772:18:163"},"scope":82376,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":81965,"nodeType":"FunctionDefinition","src":"2844:91:163","nodes":[],"body":{"id":81964,"nodeType":"Block","src":"2894:41:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81960,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"2911:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76699_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2922:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":76688,"src":"2911:17:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81959,"id":81963,"nodeType":"Return","src":"2904:24:163"}]},"baseFunctions":[76783],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2853:6:163","parameters":{"id":81956,"nodeType":"ParameterList","parameters":[],"src":"2859:2:163"},"returnParameters":{"id":81959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81965,"src":"2885:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81957,"name":"address","nodeType":"ElementaryTypeName","src":"2885:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2884:9:163"},"scope":82376,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":81975,"nodeType":"FunctionDefinition","src":"3094:94:163","nodes":[],"body":{"id":81974,"nodeType":"Block","src":"3146:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3163:17:163","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":81970,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3156:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81973,"nodeType":"ExpressionStatement","src":"3156:25:163"}]},"baseFunctions":[76723],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3103:11:163","parameters":{"id":81966,"nodeType":"ParameterList","parameters":[],"src":"3114:2:163"},"returnParameters":{"id":81969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81975,"src":"3138:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81967,"name":"uint48","nodeType":"ElementaryTypeName","src":"3138:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3137:8:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81985,"nodeType":"FunctionDefinition","src":"3194:104:163","nodes":[],"body":{"id":81984,"nodeType":"Block","src":"3256:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3273:17:163","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":81980,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3266:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3266:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81983,"nodeType":"ExpressionStatement","src":"3266:25:163"}]},"baseFunctions":[76728],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3203:21:163","parameters":{"id":81976,"nodeType":"ParameterList","parameters":[],"src":"3224:2:163"},"returnParameters":{"id":81979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81985,"src":"3248:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81977,"name":"uint48","nodeType":"ElementaryTypeName","src":"3248:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3247:8:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81995,"nodeType":"FunctionDefinition","src":"3304:102:163","nodes":[],"body":{"id":81994,"nodeType":"Block","src":"3364:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3381:17:163","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":81990,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3374:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81993,"nodeType":"ExpressionStatement","src":"3374:25:163"}]},"baseFunctions":[76733],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3313:19:163","parameters":{"id":81986,"nodeType":"ParameterList","parameters":[],"src":"3332:2:163"},"returnParameters":{"id":81989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81995,"src":"3356:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81987,"name":"uint48","nodeType":"ElementaryTypeName","src":"3356:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3355:8:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82005,"nodeType":"FunctionDefinition","src":"3412:99:163","nodes":[],"body":{"id":82004,"nodeType":"Block","src":"3469:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3486:17:163","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":82000,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3479:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3479:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82003,"nodeType":"ExpressionStatement","src":"3479:25:163"}]},"baseFunctions":[76738],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3421:16:163","parameters":{"id":81996,"nodeType":"ParameterList","parameters":[],"src":"3437:2:163"},"returnParameters":{"id":81999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81998,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82005,"src":"3461:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81997,"name":"uint48","nodeType":"ElementaryTypeName","src":"3461:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3460:8:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82015,"nodeType":"FunctionDefinition","src":"3517:98:163","nodes":[],"body":{"id":82014,"nodeType":"Block","src":"3573:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3590:17:163","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":82010,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3583:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82013,"nodeType":"ExpressionStatement","src":"3583:25:163"}]},"baseFunctions":[76743],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3526:15:163","parameters":{"id":82006,"nodeType":"ParameterList","parameters":[],"src":"3541:2:163"},"returnParameters":{"id":82009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82015,"src":"3565:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82007,"name":"uint48","nodeType":"ElementaryTypeName","src":"3565:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3564:8:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82025,"nodeType":"FunctionDefinition","src":"3621:105:163","nodes":[],"body":{"id":82024,"nodeType":"Block","src":"3684:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3701:17:163","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":82020,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3694:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3694:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82023,"nodeType":"ExpressionStatement","src":"3694:25:163"}]},"baseFunctions":[76748],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3630:22:163","parameters":{"id":82016,"nodeType":"ParameterList","parameters":[],"src":"3652:2:163"},"returnParameters":{"id":82019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82025,"src":"3676:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82017,"name":"uint48","nodeType":"ElementaryTypeName","src":"3676:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3675:8:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82035,"nodeType":"FunctionDefinition","src":"3732:109:163","nodes":[],"body":{"id":82034,"nodeType":"Block","src":"3799:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3816:17:163","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":82030,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3809:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3809:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82033,"nodeType":"ExpressionStatement","src":"3809:25:163"}]},"baseFunctions":[76753],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3741:25:163","parameters":{"id":82026,"nodeType":"ParameterList","parameters":[],"src":"3766:2:163"},"returnParameters":{"id":82029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82035,"src":"3790:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82027,"name":"uint256","nodeType":"ElementaryTypeName","src":"3790:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3789:9:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82045,"nodeType":"FunctionDefinition","src":"3847:106:163","nodes":[],"body":{"id":82044,"nodeType":"Block","src":"3911:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3928:17:163","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":82040,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3921:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3921:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82043,"nodeType":"ExpressionStatement","src":"3921:25:163"}]},"baseFunctions":[76758],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3856:23:163","parameters":{"id":82036,"nodeType":"ParameterList","parameters":[],"src":"3879:2:163"},"returnParameters":{"id":82039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82045,"src":"3903:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":82037,"name":"uint64","nodeType":"ElementaryTypeName","src":"3903:6:163","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3902:8:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82055,"nodeType":"FunctionDefinition","src":"3959:102:163","nodes":[],"body":{"id":82054,"nodeType":"Block","src":"4019:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4036:17:163","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":82050,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4029:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4029:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82053,"nodeType":"ExpressionStatement","src":"4029:25:163"}]},"baseFunctions":[76763],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"3968:19:163","parameters":{"id":82046,"nodeType":"ParameterList","parameters":[],"src":"3987:2:163"},"returnParameters":{"id":82049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82055,"src":"4011:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":82047,"name":"uint64","nodeType":"ElementaryTypeName","src":"4011:6:163","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4010:8:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82065,"nodeType":"FunctionDefinition","src":"4067:94:163","nodes":[],"body":{"id":82064,"nodeType":"Block","src":"4119:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4136:17:163","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":82060,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4129:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82063,"nodeType":"ExpressionStatement","src":"4129:25:163"}]},"baseFunctions":[76768],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4076:10:163","parameters":{"id":82056,"nodeType":"ParameterList","parameters":[],"src":"4086:2:163"},"returnParameters":{"id":82059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82065,"src":"4110:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82057,"name":"address","nodeType":"ElementaryTypeName","src":"4110:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4109:9:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82075,"nodeType":"FunctionDefinition","src":"4167:94:163","nodes":[],"body":{"id":82074,"nodeType":"Block","src":"4219:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4236:17:163","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":82070,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4229:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4229:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82073,"nodeType":"ExpressionStatement","src":"4229:25:163"}]},"baseFunctions":[76773],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4176:10:163","parameters":{"id":82066,"nodeType":"ParameterList","parameters":[],"src":"4186:2:163"},"returnParameters":{"id":82069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82068,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82075,"src":"4210:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4210:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4209:9:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82085,"nodeType":"FunctionDefinition","src":"4267:95:163","nodes":[],"body":{"id":82084,"nodeType":"Block","src":"4320:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4337:17:163","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":82080,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4330:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4330:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82083,"nodeType":"ExpressionStatement","src":"4330:25:163"}]},"baseFunctions":[76778],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4276:11:163","parameters":{"id":82076,"nodeType":"ParameterList","parameters":[],"src":"4287:2:163"},"returnParameters":{"id":82079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82085,"src":"4311:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82077,"name":"uint256","nodeType":"ElementaryTypeName","src":"4311:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4310:9:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82096,"nodeType":"FunctionDefinition","src":"4368:125:163","nodes":[],"body":{"id":82095,"nodeType":"Block","src":"4451:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4468:17:163","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":82091,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4461:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4461:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82094,"nodeType":"ExpressionStatement","src":"4461:25:163"}]},"baseFunctions":[76789],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4377:18:163","parameters":{"id":82086,"nodeType":"ParameterList","parameters":[],"src":"4395:2:163"},"returnParameters":{"id":82090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82096,"src":"4419:30:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":82088,"nodeType":"UserDefinedTypeName","pathNode":{"id":82087,"name":"Gear.SymbioticContracts","nameLocations":["4419:4:163","4424:18:163"],"nodeType":"IdentifierPath","referencedDeclaration":86419,"src":"4419:23:163"},"referencedDeclaration":86419,"src":"4419:23:163","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$86419_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4418:32:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82104,"nodeType":"FunctionDefinition","src":"4499:81:163","nodes":[],"body":{"id":82103,"nodeType":"Block","src":"4538:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4555:17:163","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":82099,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4548:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4548:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82102,"nodeType":"ExpressionStatement","src":"4548:25:163"}]},"baseFunctions":[76842],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4508:15:163","parameters":{"id":82097,"nodeType":"ParameterList","parameters":[],"src":"4523:2:163"},"returnParameters":{"id":82098,"nodeType":"ParameterList","parameters":[],"src":"4538:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82112,"nodeType":"FunctionDefinition","src":"4586:80:163","nodes":[],"body":{"id":82111,"nodeType":"Block","src":"4624:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4641:17:163","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":82107,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4634:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4634:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82110,"nodeType":"ExpressionStatement","src":"4634:25:163"}]},"baseFunctions":[76846],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4595:14:163","parameters":{"id":82105,"nodeType":"ParameterList","parameters":[],"src":"4609:2:163"},"returnParameters":{"id":82106,"nodeType":"ParameterList","parameters":[],"src":"4624:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82122,"nodeType":"FunctionDefinition","src":"4672:93:163","nodes":[],"body":{"id":82121,"nodeType":"Block","src":"4723:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4740:17:163","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":82117,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4733:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4733:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82120,"nodeType":"ExpressionStatement","src":"4733:25:163"}]},"baseFunctions":[76794],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4681:20:163","parameters":{"id":82115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82122,"src":"4702:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82113,"name":"address","nodeType":"ElementaryTypeName","src":"4702:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4701:9:163"},"returnParameters":{"id":82116,"nodeType":"ParameterList","parameters":[],"src":"4723:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82132,"nodeType":"FunctionDefinition","src":"4771:92:163","nodes":[],"body":{"id":82131,"nodeType":"Block","src":"4821:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4838:17:163","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":82127,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4831:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4831:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82130,"nodeType":"ExpressionStatement","src":"4831:25:163"}]},"baseFunctions":[76799],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4780:19:163","parameters":{"id":82125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82132,"src":"4800:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82123,"name":"address","nodeType":"ElementaryTypeName","src":"4800:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4799:9:163"},"returnParameters":{"id":82126,"nodeType":"ParameterList","parameters":[],"src":"4821:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82140,"nodeType":"FunctionDefinition","src":"4869:82:163","nodes":[],"body":{"id":82139,"nodeType":"Block","src":"4909:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4926:17:163","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":82135,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4919:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82138,"nodeType":"ExpressionStatement","src":"4919:25:163"}]},"baseFunctions":[76838],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4878:16:163","parameters":{"id":82133,"nodeType":"ParameterList","parameters":[],"src":"4894:2:163"},"returnParameters":{"id":82134,"nodeType":"ParameterList","parameters":[],"src":"4909:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82150,"nodeType":"FunctionDefinition","src":"4957:91:163","nodes":[],"body":{"id":82149,"nodeType":"Block","src":"5006:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5023:17:163","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":82145,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5016:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5016:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82148,"nodeType":"ExpressionStatement","src":"5016:25:163"}]},"baseFunctions":[76852],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"4966:18:163","parameters":{"id":82143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82150,"src":"4985:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82141,"name":"address","nodeType":"ElementaryTypeName","src":"4985:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4984:9:163"},"returnParameters":{"id":82144,"nodeType":"ParameterList","parameters":[],"src":"5006:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82166,"nodeType":"FunctionDefinition","src":"5054:134:163","nodes":[],"body":{"id":82165,"nodeType":"Block","src":"5146:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5163:17:163","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":82161,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5156:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5156:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82164,"nodeType":"ExpressionStatement","src":"5156:25:163"}]},"baseFunctions":[76890],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5063:25:163","parameters":{"id":82157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82166,"src":"5089:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82151,"name":"address","nodeType":"ElementaryTypeName","src":"5089:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82166,"src":"5098:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82153,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82156,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82166,"src":"5107:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5107:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5088:27:163"},"returnParameters":{"id":82160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82159,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82166,"src":"5137:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5137:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5136:9:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82181,"nodeType":"FunctionDefinition","src":"5194:150:163","nodes":[],"body":{"id":82180,"nodeType":"Block","src":"5302:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5319:17:163","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":82176,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5312:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5312:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82179,"nodeType":"ExpressionStatement","src":"5312:25:163"}]},"baseFunctions":[76901],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5203:23:163","parameters":{"id":82172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82181,"src":"5227:35:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":82168,"nodeType":"UserDefinedTypeName","pathNode":{"id":82167,"name":"Gear.StakerRewardsCommitment","nameLocations":["5227:4:163","5232:23:163"],"nodeType":"IdentifierPath","referencedDeclaration":86225,"src":"5227:28:163"},"referencedDeclaration":86225,"src":"5227:28:163","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":82171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82181,"src":"5264:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82170,"name":"uint48","nodeType":"ElementaryTypeName","src":"5264:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5226:45:163"},"returnParameters":{"id":82175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82181,"src":"5293:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5293:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5292:9:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82193,"nodeType":"FunctionDefinition","src":"5350:95:163","nodes":[],"body":{"id":82192,"nodeType":"Block","src":"5403:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5420:17:163","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":82188,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5413:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5413:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82191,"nodeType":"ExpressionStatement","src":"5413:25:163"}]},"baseFunctions":[76860],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5359:13:163","parameters":{"id":82186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82193,"src":"5373:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82182,"name":"address","nodeType":"ElementaryTypeName","src":"5373:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82193,"src":"5382:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82184,"name":"address","nodeType":"ElementaryTypeName","src":"5382:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5372:18:163"},"returnParameters":{"id":82187,"nodeType":"ParameterList","parameters":[],"src":"5403:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82203,"nodeType":"FunctionDefinition","src":"5451:85:163","nodes":[],"body":{"id":82202,"nodeType":"Block","src":"5494:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5511:17:163","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":82198,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5504:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5504:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82201,"nodeType":"ExpressionStatement","src":"5504:25:163"}]},"baseFunctions":[76872],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5460:12:163","parameters":{"id":82196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82203,"src":"5473:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82194,"name":"address","nodeType":"ElementaryTypeName","src":"5473:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:9:163"},"returnParameters":{"id":82197,"nodeType":"ParameterList","parameters":[],"src":"5494:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82213,"nodeType":"FunctionDefinition","src":"5542:84:163","nodes":[],"body":{"id":82212,"nodeType":"Block","src":"5584:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5601:17:163","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":82208,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5594:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5594:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82211,"nodeType":"ExpressionStatement","src":"5594:25:163"}]},"baseFunctions":[76878],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5551:11:163","parameters":{"id":82206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82213,"src":"5563:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82204,"name":"address","nodeType":"ElementaryTypeName","src":"5563:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5562:9:163"},"returnParameters":{"id":82207,"nodeType":"ParameterList","parameters":[],"src":"5584:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82223,"nodeType":"FunctionDefinition","src":"5632:88:163","nodes":[],"body":{"id":82222,"nodeType":"Block","src":"5678:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5695:17:163","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":82218,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5688:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5688:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82221,"nodeType":"ExpressionStatement","src":"5688:25:163"}]},"baseFunctions":[76866],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5641:15:163","parameters":{"id":82216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82223,"src":"5657:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82214,"name":"address","nodeType":"ElementaryTypeName","src":"5657:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5656:9:163"},"returnParameters":{"id":82217,"nodeType":"ParameterList","parameters":[],"src":"5678:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82237,"nodeType":"FunctionDefinition","src":"5726:117:163","nodes":[],"body":{"id":82236,"nodeType":"Block","src":"5801:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5818:17:163","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":82232,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5811:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5811:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82235,"nodeType":"ExpressionStatement","src":"5811:25:163"}]},"baseFunctions":[76820],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5735:18:163","parameters":{"id":82228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82237,"src":"5754:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82224,"name":"address","nodeType":"ElementaryTypeName","src":"5754:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82237,"src":"5763:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82226,"name":"uint48","nodeType":"ElementaryTypeName","src":"5763:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5753:17:163"},"returnParameters":{"id":82231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82237,"src":"5792:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82229,"name":"uint256","nodeType":"ElementaryTypeName","src":"5792:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5791:9:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82253,"nodeType":"FunctionDefinition","src":"5849:142:163","nodes":[],"body":{"id":82252,"nodeType":"Block","src":"5949:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5966:17:163","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":82248,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5959:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5959:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82251,"nodeType":"ExpressionStatement","src":"5959:25:163"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5858:25:163","parameters":{"id":82240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82253,"src":"5884:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82238,"name":"uint48","nodeType":"ElementaryTypeName","src":"5884:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5883:8:163"},"returnParameters":{"id":82247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82253,"src":"5913:16:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82241,"name":"address","nodeType":"ElementaryTypeName","src":"5913:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82242,"nodeType":"ArrayTypeName","src":"5913:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82253,"src":"5931:16:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":82244,"name":"uint256","nodeType":"ElementaryTypeName","src":"5931:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82245,"nodeType":"ArrayTypeName","src":"5931:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5912:36:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82265,"nodeType":"FunctionDefinition","src":"5997:98:163","nodes":[],"body":{"id":82264,"nodeType":"Block","src":"6053:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6070:17:163","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":82260,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6063:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6063:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82263,"nodeType":"ExpressionStatement","src":"6063:25:163"}]},"baseFunctions":[76827],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6006:12:163","parameters":{"id":82258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82265,"src":"6019:20:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":82255,"nodeType":"UserDefinedTypeName","pathNode":{"id":82254,"name":"SlashData","nameLocations":["6019:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":76713,"src":"6019:9:163"},"referencedDeclaration":76713,"src":"6019:9:163","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$76713_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":82256,"nodeType":"ArrayTypeName","src":"6019:11:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$76713_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6018:22:163"},"returnParameters":{"id":82259,"nodeType":"ParameterList","parameters":[],"src":"6053:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82277,"nodeType":"FunctionDefinition","src":"6101:104:163","nodes":[],"body":{"id":82276,"nodeType":"Block","src":"6163:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":82273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6180:17:163","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":82272,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6173:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":82274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82275,"nodeType":"ExpressionStatement","src":"6173:25:163"}]},"baseFunctions":[76834],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6110:12:163","parameters":{"id":82270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82277,"src":"6123:26:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":82267,"nodeType":"UserDefinedTypeName","pathNode":{"id":82266,"name":"SlashIdentifier","nameLocations":["6123:15:163"],"nodeType":"IdentifierPath","referencedDeclaration":76718,"src":"6123:15:163"},"referencedDeclaration":76718,"src":"6123:15:163","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$76718_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":82268,"nodeType":"ArrayTypeName","src":"6123:17:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$76718_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6122:28:163"},"returnParameters":{"id":82271,"nodeType":"ParameterList","parameters":[],"src":"6163:0:163"},"scope":82376,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82290,"nodeType":"FunctionDefinition","src":"6211:201:163","nodes":[],"body":{"id":82289,"nodeType":"Block","src":"6281:131:163","nodes":[],"statements":[{"assignments":[82284],"declarations":[{"constant":false,"id":82284,"mutability":"mutable","name":"slot","nameLocation":"6299:4:163","nodeType":"VariableDeclaration","scope":82289,"src":"6291:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6291:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82287,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82285,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82315,"src":"6306:15:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6306:17:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6291:32:163"},{"AST":{"nativeSrc":"6359:47:163","nodeType":"YulBlock","src":"6359:47:163","statements":[{"nativeSrc":"6373:23:163","nodeType":"YulAssignment","src":"6373:23:163","value":{"name":"slot","nativeSrc":"6392:4:163","nodeType":"YulIdentifier","src":"6392:4:163"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6373:15:163","nodeType":"YulIdentifier","src":"6373:15:163"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82281,"isOffset":false,"isSlot":true,"src":"6373:15:163","suffix":"slot","valueSize":1},{"declaration":82284,"isOffset":false,"isSlot":false,"src":"6392:4:163","valueSize":1}],"flags":["memory-safe"],"id":82288,"nodeType":"InlineAssembly","src":"6334:72:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6220:8:163","parameters":{"id":82278,"nodeType":"ParameterList","parameters":[],"src":"6228:2:163"},"returnParameters":{"id":82282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82281,"mutability":"mutable","name":"middleware","nameLocation":"6269:10:163","nodeType":"VariableDeclaration","scope":82290,"src":"6253:26:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":82280,"nodeType":"UserDefinedTypeName","pathNode":{"id":82279,"name":"Storage","nameLocations":["6253:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":76699,"src":"6253:7:163"},"referencedDeclaration":76699,"src":"6253:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76699_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6252:28:163"},"scope":82376,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82303,"nodeType":"FunctionDefinition","src":"6418:209:163","nodes":[],"body":{"id":82302,"nodeType":"Block","src":"6494:133:163","nodes":[],"statements":[{"assignments":[82297],"declarations":[{"constant":false,"id":82297,"mutability":"mutable","name":"slot","nameLocation":"6512:4:163","nodeType":"VariableDeclaration","scope":82302,"src":"6504:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6504:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82300,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82298,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82327,"src":"6519:18:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6519:20:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6504:35:163"},{"AST":{"nativeSrc":"6574:47:163","nodeType":"YulBlock","src":"6574:47:163","statements":[{"nativeSrc":"6588:23:163","nodeType":"YulAssignment","src":"6588:23:163","value":{"name":"slot","nativeSrc":"6607:4:163","nodeType":"YulIdentifier","src":"6607:4:163"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"6588:15:163","nodeType":"YulIdentifier","src":"6588:15:163"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82294,"isOffset":false,"isSlot":true,"src":"6588:15:163","suffix":"slot","valueSize":1},{"declaration":82297,"isOffset":false,"isSlot":false,"src":"6607:4:163","valueSize":1}],"flags":["memory-safe"],"id":82301,"nodeType":"InlineAssembly","src":"6549:72:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6427:11:163","parameters":{"id":82291,"nodeType":"ParameterList","parameters":[],"src":"6438:2:163"},"returnParameters":{"id":82295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82294,"mutability":"mutable","name":"poaStorage","nameLocation":"6482:10:163","nodeType":"VariableDeclaration","scope":82303,"src":"6463:29:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$77179_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":82293,"nodeType":"UserDefinedTypeName","pathNode":{"id":82292,"name":"POAStorage","nameLocations":["6463:10:163"],"nodeType":"IdentifierPath","referencedDeclaration":77179,"src":"6463:10:163"},"referencedDeclaration":77179,"src":"6463:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$77179_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6462:31:163"},"scope":82376,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82315,"nodeType":"FunctionDefinition","src":"6633:128:163","nodes":[],"body":{"id":82314,"nodeType":"Block","src":"6691:70:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82310,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81830,"src":"6735:12:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82308,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"6708:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":82309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6720:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"6708:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6708:40:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6749:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"6708:46:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82307,"id":82313,"nodeType":"Return","src":"6701:53:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6642:15:163","parameters":{"id":82304,"nodeType":"ParameterList","parameters":[],"src":"6657:2:163"},"returnParameters":{"id":82307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82315,"src":"6682:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6682:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6681:9:163"},"scope":82376,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82327,"nodeType":"FunctionDefinition","src":"6767:135:163","nodes":[],"body":{"id":82326,"nodeType":"Block","src":"6828:74:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82322,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81833,"src":"6872:16:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82320,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"6845:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":82321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6857:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"6845:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6845:44:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6890:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"6845:50:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82319,"id":82325,"nodeType":"Return","src":"6838:57:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6776:18:163","parameters":{"id":82316,"nodeType":"ParameterList","parameters":[],"src":"6794:2:163"},"returnParameters":{"id":82319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82327,"src":"6819:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6819:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6818:9:163"},"scope":82376,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82351,"nodeType":"FunctionDefinition","src":"6908:200:163","nodes":[],"body":{"id":82350,"nodeType":"Block","src":"6976:132:163","nodes":[],"statements":[{"assignments":[82335],"declarations":[{"constant":false,"id":82335,"mutability":"mutable","name":"slot","nameLocation":"6994:4:163","nodeType":"VariableDeclaration","scope":82350,"src":"6986:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6986:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82340,"initialValue":{"arguments":[{"id":82338,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82329,"src":"7028:9:163","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82336,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"7001:14:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":82337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7016:11:163","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"7001:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7001:37:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6986:52:163"},{"expression":{"id":82348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82344,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81830,"src":"7075:12:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82341,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"7048:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":82343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7060:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"7048:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7048:40:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7089:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"7048:46:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82347,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82335,"src":"7097:4:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7048:53:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82349,"nodeType":"ExpressionStatement","src":"7048:53:163"}]},"implemented":true,"kind":"function","modifiers":[{"id":82332,"kind":"modifierInvocation","modifierName":{"id":82331,"name":"onlyOwner","nameLocations":["6966:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"6966:9:163"},"nodeType":"ModifierInvocation","src":"6966:9:163"}],"name":"_setStorageSlot","nameLocation":"6917:15:163","parameters":{"id":82330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82329,"mutability":"mutable","name":"namespace","nameLocation":"6947:9:163","nodeType":"VariableDeclaration","scope":82351,"src":"6933:23:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82328,"name":"string","nodeType":"ElementaryTypeName","src":"6933:6:163","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6932:25:163"},"returnParameters":{"id":82333,"nodeType":"ParameterList","parameters":[],"src":"6976:0:163"},"scope":82376,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82375,"nodeType":"FunctionDefinition","src":"7114:207:163","nodes":[],"body":{"id":82374,"nodeType":"Block","src":"7185:136:163","nodes":[],"statements":[{"assignments":[82359],"declarations":[{"constant":false,"id":82359,"mutability":"mutable","name":"slot","nameLocation":"7203:4:163","nodeType":"VariableDeclaration","scope":82374,"src":"7195:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82358,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7195:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82364,"initialValue":{"arguments":[{"id":82362,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82353,"src":"7237:9:163","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82360,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"7210:14:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":82361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7225:11:163","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"7210:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7210:37:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7195:52:163"},{"expression":{"id":82372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82368,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81833,"src":"7284:16:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82365,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"7257:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":82367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7269:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"7257:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7257:44:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7302:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"7257:50:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82371,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82359,"src":"7310:4:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7257:57:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82373,"nodeType":"ExpressionStatement","src":"7257:57:163"}]},"implemented":true,"kind":"function","modifiers":[{"id":82356,"kind":"modifierInvocation","modifierName":{"id":82355,"name":"onlyOwner","nameLocations":["7175:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"7175:9:163"},"nodeType":"ModifierInvocation","src":"7175:9:163"}],"name":"_setPoaStorageSlot","nameLocation":"7123:18:163","parameters":{"id":82354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82353,"mutability":"mutable","name":"namespace","nameLocation":"7156:9:163","nodeType":"VariableDeclaration","scope":82375,"src":"7142:23:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82352,"name":"string","nodeType":"ElementaryTypeName","src":"7142:6:163","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7141:25:163"},"returnParameters":{"id":82357,"nodeType":"ParameterList","parameters":[],"src":"7185:0:163"},"scope":82376,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":81818,"name":"IMiddleware","nameLocations":["831:11:163"],"nodeType":"IdentifierPath","referencedDeclaration":76902,"src":"831:11:163"},"id":81819,"nodeType":"InheritanceSpecifier","src":"831:11:163"},{"baseName":{"id":81820,"name":"IPOAMiddleware","nameLocations":["844:14:163"],"nodeType":"IdentifierPath","referencedDeclaration":77187,"src":"844:14:163"},"id":81821,"nodeType":"InheritanceSpecifier","src":"844:14:163"},{"baseName":{"id":81822,"name":"OwnableUpgradeable","nameLocations":["860:18:163"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"860:18:163"},"id":81823,"nodeType":"InheritanceSpecifier","src":"860:18:163"},{"baseName":{"id":81824,"name":"ReentrancyGuardTransient","nameLocations":["880:24:163"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"880:24:163"},"id":81825,"nodeType":"InheritanceSpecifier","src":"880:24:163"},{"baseName":{"id":81826,"name":"UUPSUpgradeable","nameLocations":["906:15:163"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"906:15:163"},"id":81827,"nodeType":"InheritanceSpecifier","src":"906:15:163"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82376,2079,376,6594,19465,20363,1913,77187,76902],"name":"POAMiddleware","nameLocation":"814:13:163","scope":82377,"usedErrors":[995,1008,1662,1665,1936,1941,3201,6168,6514,19301,19306,76523,76526,76529,76532,76535,76538,76541,76544,76547,76550,76553,76556,76559,76562,76565,76568,76571,76574,76577,76580,76583,76586,76589,76592,76595,76598,76601,76604,76607,76610,76613,76616,76619,76622,76625,76628,76631],"usedEvents":[324,1670,19312]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":163} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Router.json b/ethexe/ethereum/abi/Router.json index 1ce585f897e..619e23c5938 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":"bumpProtocolVersion","inputs":[{"name":"_versionType","type":"uint8","internalType":"enum Gear.VersionType"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"protocolVersion","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"},{"name":"protocolVersion","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"subProtocolVersion","inputs":[{"name":"versionType","type":"uint8","internalType":"enum Gear.VersionType"}],"outputs":[{"name":"","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":"ProtocolVersionChanged","inputs":[{"name":"newProtocolVersion","type":"uint256","indexed":false,"internalType":"uint256"}],"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":"0x60a080604052346100c257306080525f516020615de85f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051615d2190816100c78239608051818181612a4d0152612ae10152f35b6001600160401b0319166001600160401b039081175f516020615de85f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613e01565b5f516020615ca15f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e71461366e575080630b9737ce1461363b5780630c18d277146135705780630d91bf2a146133a257806311bec80d1461336f5780631622441d14612efd578063188509e914612ecf57806328e24b3d14612ea15780632ae9c60014612e745780633644e51514612e595780633683c4d214612d9c5780633bd109fa14612d4d5780633d43b41814612cf95780633f4ba83a14612c795780634f1ef28614612aa157806352d1902d14612a3a57806353f7fd48146120885780635734c0e114611f485780635c975abb14611f195780636c2eb350146119d5578063715018a61461196c57806371a8cf2d1461193e5780637ecebe00146118e657806382bdeaad146117df5780638456cb591461176c57806384b0196e1461153b57806384d22a4f146114dd57806388f50cf0146114a45780638b1edf1e146114455780638c4ace6a146112ea5780638da5cb5b146112b55780638f381dbe1461126f5780639067088e1461122657806396a2ddfa146111f85780639eb939a81461119f578063a5d53a441461111f578063ad3cb1cc146110d6578063baaf020114610fd9578063c13911e814610f93578063c2eb812f14610bef578063ca1e781914610b9f578063cacf66ab14610b67578063d456fd5114610b31578063e3a6684f14610af2578063e6fabc0914610ab9578063ed01826214610a8f578063ed612f8c14610a57578063edc8722514610a02578063ee32004f1461081c578063f0fd702a146103d8578063f1ef31ec146103aa578063f2fde38b1461037d578063f4f20ac0146103445763facd743b0361000f5734610341576020366003190112610341576103036136c4565b600361031e5f516020615ca15f395f51905f525442906155cb565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103415780600319360112610341575f516020615ca15f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610341576020366003190112610341576103a761039a6136c4565b6103a2613dce565b613d5d565b80f35b50346103415780600319360112610341576020601f5f516020615ca15f395f51905f52540154604051908152f35b503461034157610140366003190112610341576103f36136c4565b602435906044356001600160401b03811161081857610416903690600401613702565b90916064359060843560ff811681036108145760e4359060ff821682036108105761043f613e01565b874915610801575f516020615ca15f395f51905f5254946001860154156107f2576019860196888a528760205260ff60408b20541661047d81613837565b6107e357895b80496107d5578083036107be5750895b82811061077757508542116107635760405160208101906001600160fb1b03841161075f576104de6020826105a9956105b29760051b8091873781010301601f1981018352826137b3565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261057760e0826137b3565b519020610582615793565b906040519161190160f01b83526002830152602282015260c43591604260a43592206159f5565b90929192615a77565b6001600160a01b031681810361074a57505086906105e760018060a01b0360068701541695601f601e82015491015490613b10565b93853b156107465760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610729575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af190811561071e5784916106ef575b50156106e05781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b610711915060203d602011610717575b61070981836137b3565b810190613946565b5f610698565b503d6106ff565b6040513d86823e3d90fd5b81610736919493946137b3565b6107425790855f61064b565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610785838686613b1d565b3514610792838686613b1d565b3590156107a3575050600101610493565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107de90613d4f565b610483565b6304c51a3360e31b8a5260048afd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b50346103415761012036600319011261034157610837613698565b61083f6136ae565b6084356001600160801b038116908181036109aa578460c43560ff8116810361099b5761086a613e01565b610878602435600435613e28565b6006015490936001600160a01b0390911691823b15610818576108c08480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016138fc565b038183885af16109ed575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109e25786916109c3575b50156109b4576001600160a01b03908116939081166109ae575033915b833b156109aa57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099f57610986575b602082604051908152f35b6109918380926137b3565b61099b578161097b565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610930565b631e4e7d0960e21b8552600485fd5b6109dc915060203d6020116107175761070981836137b3565b5f610913565b6040513d88823e3d90fd5b816109f7916137b3565b61074657825f6108cb565b50346103415780600319360112610341576020610a4f5f516020615ca15f395f51905f525460086004610a3542846155cb565b0154910154906001600160801b038260801c921690615524565b604051908152f35b503461034157806003193601126103415760206004610a855f516020615ca15f395f51905f525442906155cb565b0154604051908152f35b503461034157602036600319011261034157600435906003821015610341576020610a4f83613d07565b50346103415780600319360112610341575f516020615ca15f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610341578060031936011261034157604060085f516020615ca15f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610341578060031936011261034157602065ffffffffffff60045f516020615ca15f395f51905f5254015416604051908152f35b5034610341578060031936011261034157602065ffffffffffff60025f516020615ca15f395f51905f52540154821c16604051908152f35b5034610341578060031936011261034157610beb610bd76004610bd15f516020615ca15f395f51905f525442906155cb565b01613cb4565b604051918291602083526020830190613879565b0390f35b5034610341578060031936011261034157604051610c0c8161377c565b610c14613c03565b8152604051610c2281613761565b5f8152602081015f90526020820152610c39613c03565b6040820152610c46613c81565b6060820152604051610c5781613761565b5f80825260208201526080820152610c6d613c03565b60a08201528160c08201528160e082015281610100820152816101208201528161014082015261016001525f516020615ca15f395f51905f5254610caf613c81565b50610cbc600982016159a0565b90610cc9600f82016159a0565b60088201549260405193610cdc85613798565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e830154601f8401549160208501549360405196610d2c8861377c565b604051610d3881613732565b60018801548152600288015463ffffffff8116602083015260201c65ffffffffffff166040820152885260405198610d6f8a613761565b60038801548a52600488015465ffffffffffff1660208b015260208901998a5260405190610d9c82613732565b60058901546001600160a01b03908116835260068a01548116602084015260078a0154166040808401919091528a0191825260608a01908152610de160158a01613b55565b9860808b01998a52601601610df590613c21565b9160a08b0192835260c08b0193845260e08b019485526101008b019586526101208b019687526101408b019788526101608b019889526040519b8c9b60208d52518c815190602001528c602082015163ffffffff1690604001526040015165ffffffffffff1660608d015251805160808d01526020015165ffffffffffff1660a08c015251600160a01b6001900381511660c08c0152600160a01b6001900360208201511660e08c0152600160a01b600190039060400151166101008b0152516101208a01610280905280516001600160801b03166102a08b015260208101516001600160801b03166102c08b015260408101516102e08b01608090526103208b01610f00916138b5565b90606001519061029f198b8203016103008c0152610f1d916138b5565b975180516001600160401b03166101408b0152602001516001600160801b03166101608a01525180516101808a015260208101516101a08a0152604001516101c0890152516101e0880152516102008701525161ffff166102208601525161024085015251610260840152516102808301520390f35b50346103415760203660031901126103415760ff604060209260195f516020615ca15f395f51905f5254016004358252845220541660405190610fd581613837565b8152f35b5034610341576020366003190112610341576004356001600160401b03811161099b5761100a903690600401613702565b905f516020615ca15f395f51905f52549061102483613aa5565b9161103260405193846137b3565b83835261103e84613aa5565b602084019490601f1901368637601a869201915b81811061109d57868587604051928392602084019060208552518091526040840192915b818110611084575050500390f35b8251845285945060209384019390920191600101611076565b806110b36110ae6001938588613b1d565b613b83565b828060a01b03165f528360205260405f20546110cf8288613b41565b5201611052565b503461034157806003193601126103415750610beb6040516110f96040826137b3565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613855565b50346103415780600319360112610341575f516020615ca15f395f51905f52546001600160a01b03906002906111569042906155cb565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c80825201906040820191826040526020835261119a603f19926060830190613855565b030190f35b50346103415780600319360112610341576111b8613c03565b5060606111d560165f516020615ca15f395f51905f525401613c21565b6111f660405180926040809180518452602081015160208501520151910152565bf35b50346103415780600319360112610341576020601b5f516020615ca15f395f51905f52540154604051908152f35b5034610341576020366003190112610341576112406136c4565b601a5f516020615ca15f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461034157602036600319011261034157600435906001600160401b0382116103415760206112ab6112a53660048601613702565b90613b97565b6040519015158152f35b50346103415780600319360112610341575f516020615c415f395f51905f52546040516001600160a01b039091168152602090f35b50346103415760a03660031901126103415760043560443560ff8116810361074657611314613e01565b824915611436575f516020615ca15f395f51905f52546001810154156114275760198101918385528260205260ff60408620541661135181613837565b611418576006820154601e9092015485926001600160a01b031691823b156108185760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611403575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610686565b8161140d916137b3565b61074657825f6113ce565b6304c51a3360e31b8552600485fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103415780600319360112610341575f516020615ca15f395f51905f525460018101908154611495576002015463ffffffff1640908115611486575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103415780600319360112610341575f516020615ca15f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103415780600319360112610341576114f661397f565b50604061151360155f516020615ca15f395f51905f525401613b55565b6111f6825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103415780600319360112610341576040519080825f516020615c215f395f51905f52549161156b836154ec565b808352926001811690811561174d57506001146116e3575b61158f925003836137b3565b6040519080825f516020615c615f395f51905f5254916115ae836154ec565b80835292600181169081156116c4575060011461166d575b6115da9193925093611611959403836137b3565b602061161f604051936115ed83866137b3565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613855565b908682036040880152613855565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b82811061165657505050500390f35b835185528695509381019392810192600101611647565b505f516020615c615f395f51905f5283529082905f516020615d015f395f51905f525b8183106116a85750509060206115da928201016115c6565b6020919350806001915483858901015201910190918492611690565b602092506115da94915060ff191682840152151560051b8201016115c6565b505f516020615c215f395f51905f5283529082907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061173157505090602061158f92820101611583565b6020919350806001915483858901015201910190918492611719565b6020925061158f94915060ff191682840152151560051b820101611583565b5034610341578060031936011261034157611785613dce565b61178d613e01565b600160ff195f516020615cc15f395f51905f525416175f516020615cc15f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610341576020366003190112610341576004356001600160401b03811161099b57611810903690600401613702565b905f516020615ca15f395f51905f52549061182a83613aa5565b9161183860405193846137b3565b83835261184484613aa5565b602084019490601f19013686376019869201915b8181106118af57868587604051928392602084019060208552518091526040840192915b81811061188a575050500390f35b91935091602080600192865161189f81613837565b815201940191019184939261187c565b806118bd6001928487613b1d565b3588528360205260ff6040892054166118d68288613b41565b6118df82613837565b5201611858565b5034610341576020366003190112610341576020906040906001600160a01b0361190e6136c4565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610341578060031936011261034157602060035f516020615ca15f395f51905f52540154604051908152f35b5034610341578060031936011261034157611985613dce565b5f516020615c415f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346103415780600319360112610341576119ee613dce565b5f516020615ce15f395f51905f525460ff8160401c16908115611f04575b50611ef5575f516020615ce15f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615c415f395f51905f5254611a66906001600160a01b0316611a5e615975565b6103a2615975565b611a6e6139b5565b90611a776139e2565b90611a80615975565b611a88615975565b82516001600160401b038111611df857611aaf5f516020615c215f395f51905f52546154ec565b601f8111611e91575b506020601f8211600114611e1757829394829392611e0c575b50508160011b915f199060031b1c1916175f516020615c215f395f51905f52555b81516001600160401b038111611df857611b195f516020615c615f395f51905f52546154ec565b601f8111611d9e575b50602092601f8211600114611d2557928293829392611d1a575b50508160011b915f199060031b1c1916175f516020615c615f395f51905f52555b5f516020615ca15f395f51905f5254611b74615454565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611bc281613761565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611bed42846155cb565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099f57611c3e918491611ceb575b50613a59565b806103e8026103e881048203611cd757601e830155806101f402906101f4820403611cc357601f820155602061010091015560ff60401b195f516020615ce15f395f51905f5254165f516020615ce15f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611d0d915060203d602011611d13575b611d0581836137b3565b810190613a40565b5f611c38565b503d611cfb565b015190505f80611b3c565b601f198216935f516020615c615f395f51905f52845280842091845b868110611d865750836001959610611d6e575b505050811b015f516020615c615f395f51905f5255611b5d565b01515f1960f88460031b161c191690555f8080611d54565b91926020600181928685015181550194019201611d41565b81811115611b22575f516020615c615f395f51905f528352611dea905f516020615d015f395f51905f5290601f840160051c9060208510611df0575b601f82910160051c0391016154d1565b5f611b22565b859150611dda565b634e487b7160e01b82526041600452602482fd5b015190505f80611ad1565b5f516020615c215f395f51905f52835280832090601f198316845b818110611e7957509583600195969710611e61575b505050811b015f516020615c215f395f51905f5255611af2565b01515f1960f88460031b161c191690555f8080611e47565b9192602060018192868b015181550194019201611e32565b81811115611ab8575f516020615c215f395f51905f528352611eef907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611df057601f82910160051c0391016154d1565b5f611ab8565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611a0c565b5034610341578060031936011261034157602060ff5f516020615cc15f395f51905f5254166040519015158152f35b503461034157602036600319011261034157600435600381101561099b57611f6e613dce565b60205f516020615ca15f395f51905f5254019081548060101c9160ff8260081c169060ff831690611f9e81613837565b80611fe8575050505060018101809111611cc3577f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9160209160101b80915b55604051908152a180f35b60019192939450611ff881613837565b03612040575060018101809111611cd757916020917f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9360081b9061ffff1916178091611fdd565b91905060018201809211611cd757916020918361ff007f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec95169061ffff191617178091611fdd565b503461034157610160366003190112610341576120a36136c4565b906024356001600160a01b0381169081900361099b576120c1613698565b926120ca6136ae565b9260a43560c43560843560403660e31901126108185761012435966001600160401b0388116109aa57366023890112156109aa578760040135926001600160401b03841161074257366024858b01011161074257610144356001600160401b0381116108145761213e903690600401613702565b9590935f516020615ce15f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612a32575b6001149081612a28575b159081612a1f575b50612a10576121c0908a60016001600160401b03195f516020615ce15f395f51905f525416175f516020615ce15f395f51905f52556129e0575b611a5e615975565b6121c8615975565b6121d06139b5565b6121d86139e2565b906121e1615975565b6121e9615975565b8051906001600160401b0382116129cc5781908b6122145f516020615c215f395f51905f52546154ec565b601f811161297b575b5050602090601f83116001146128ff578c926128f4575b50508160011b915f199060031b1c1916175f516020615c215f395f51905f52555b8051906001600160401b0382116128e057819061227f5f516020615c615f395f51905f52546154ec565b601f8111612884575b50602090601f8311600114612808578b926127fd575b50508160011b915f199060031b1c1916175f516020615c615f395f51905f52555b6122c7615975565b42156127ee5781156127df57818111156127d057600a6122e78383613a01565b048310156127c1576040809a81516122ff83826137b3565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612332613dce565b5f1991519020018a5260ff1960208b2016809e815f516020615ca15f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a1612387615454565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906123d182613732565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561244561397f565b50895161245181613761565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061249681613732565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa9081156127b757906124f6918691611ceb5750613a59565b806103e8026103e8810482036127a357601e8a0155806101f402906101f482040361278f579061255691601f8a015561254e8751986125348a613761565b60e4358a5260208a019461010435865260243692016137d4565b933691613abc565b958051825170014551231950b75fc4402da1732fc9bebe198210918261277e575b50501561276f5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156127625752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b825481101561261f5782845260208085208201546001600160a01b03165f90815290869052869020805460ff191690556001016125e7565b509195949094865b8351811015612667576001906001600160a01b036126458287613b41565b5116828060a01b03165f5285602052865f208260ff1982541617905501612627565b50925092938151916001600160401b03831161274e57600160401b831161274e576020908254848455808510612733575b500190865260208620865b838110612716575050505042600e82015560206101009101556126c4575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615ce15f395f51905f5254165f516020615ce15f395f51905f52555160018152a180f35b82516001600160a01b0316818301556020909201916001016126a3565b61274890848a528580858c20019103906154d1565b5f612698565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6127889250615b71565b5f80612577565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f8061229e565b5f516020615c615f395f51905f528c52818c209250601f1984168c5b81811061286c5750908460019594939210612854575b505050811b015f516020615c615f395f51905f52556122bf565b01515f1960f88460031b161c191690555f808061283a565b92936020600181928786015181550195019301612824565b82811115612288575f516020615c615f395f51905f528c526128d2905f516020615d015f395f51905f5290601f850160051c908e602087106128d8575b50601f82910160051c0391016154d1565b5f612288565b91508e6128c1565b634e487b7160e01b8a52604160045260248afd5b015190505f80612234565b5f516020615c215f395f51905f528d52818d209250601f1984168d5b818110612963575090846001959493921061294b575b505050811b015f516020615c215f395f51905f5255612255565b01515f1960f88460031b161c191690555f8080612931565b9293602060018192878601518155019501930161291b565b8381111561221d575f516020615c215f395f51905f526129bd92528d6020812091601f860160051c91602087106129c45750601f82910160051c0391016154d1565b8b5f61221d565b91508f6128c1565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615ce15f395f51905f525416175f516020615ce15f395f51905f52556121b8565b63f92ee8a960e01b8952600489fd5b9050155f61217e565b303b159150612176565b8b915061216c565b50346103415780600319360112610341577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612a925760206040515f516020615c815f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261034157612ab66136c4565b906024356001600160401b03811161099b57612ad6903690600401613819565b916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612c57575b50612c4857612b19613dce565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596612c10575b50612b5e57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615c815f395f51905f528103612bfe5750823b15612bec575f516020615c815f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115612bd357612bcf91615b94565b5080f35b505034612bdd5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612c40575b81612c2c602093836137b3565b81010312612c3c5751945f612b45565b5f80fd5b3d9150612c1f565b63703e46dd60e11b8252600482fd5b5f516020615c815f395f51905f52546001600160a01b0316141590505f612b0c565b5034610341578060031936011261034157612c92613dce565b5f516020615cc15f395f51905f525460ff811615612cea5760ff19165f516020615cc15f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461034157602036600319011261034157612d136136c4565b612d1b613dce565b5f516020615ca15f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610341578060031936011261034157612d6661397f565b506040612d8a612d855f516020615ca15f395f51905f525442906155cb565b613997565b60208251918051835201516020820152f35b503461034157606036600319011261034157612db6613698565b612dbe613e01565b612dcc60243560043561429e565b506001600160a01b0390811691908116612e545750335b5f516020615ca15f395f51905f5254600501546001600160a01b0316823b1561081857604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af1801561099f5761098657602082604051908152f35b612de3565b50346103415780600319360112610341576020610a4f615793565b50346103415780600319360112610341576020805f516020615ca15f395f51905f52540154604051908152f35b5034610341578060031936011261034157602060015f516020615ca15f395f51905f52540154604051908152f35b50346103415780600319360112610341576020601e5f516020615ca15f395f51905f52540154604051908152f35b5034610341576060366003190112610341576001600160401b036004351161034157610100600435360360031901126103415760026024351015610341576044356001600160401b03811161099b57612f5a903690600401613702565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6133605760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ca15f395f51905f52549060018201541561142757815415613304575b600382015460446004350135036132f55765ffffffffffff60048301541665ffffffffffff612ff960246004350161396c565b16106132e75761300e60043560040183614440565b9261302360a460043501600435600401614942565b808096925060051b04602014851517156127a3576130438560051b615563565b8695865b8188106131b35750613179965060051b90209061306960043560040186614984565b61307860043560040187614d62565b9061308760246004350161396c565b9361309660646004350161395e565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c781526130fb60e7826137b3565b5190209283600382015565ffffffffffff61311a60246004350161396c565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff61316e60246004350161396c565b1693602435916151eb565b156131a457807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b6131c760a460043501600435600401614942565b8910156132d3578860061b8101358a5260198801602052600160ff60408c2054166131f181613837565b036132c457600191602091613287838c60061b83010161321081614977565b156132a35760068d901b8301358e5260198c01855260408e20805460ff19166002179055601c8c01805461324390613d4f565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661327284614977565b1515926040519060061b8701358152a2614977565b908b60061b01358c52825360218b208186015201970196613047565b60068d901b8301358e5260198c01855260408e20805460ff19169055613246565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b61332161331560646004350161395e565b60043560040135614396565b156133515765ffffffffffff61333b60246004350161396c565b164211612fc657631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b503461034157602036600319011261034157613389613dce565b600435601e5f516020615ca15f395f51905f5254015580f35b503461034157610100366003190112610341576133bd613698565b6064356001600160801b03811690818103610818578360a43560ff8116810361099b576133e8613e01565b6133f660243560043561429e565b6006015490936001600160a01b0390911691823b156108185761343d8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016138fc565b038183885af161355b575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613550578591613531575b5015613522576001600160a01b039081169290811661351c575033905b5f516020615ca15f395f51905f5254600501546001600160a01b0316833b156109aa57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af1801561099f5761098657602082604051908152f35b906134ad565b631e4e7d0960e21b8452600484fd5b61354a915060203d6020116107175761070981836137b3565b5f613490565b6040513d87823e3d90fd5b81613565916137b3565b61074657825f613448565b34612c3c576080366003190112612c3c57613589613698565b6135916136ae565b9061359a613e01565b6135a8602435600435613e28565b506001600160a01b0390811691908116613635575033915b813b15612c3c57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561362a5760209261361a575b50604051908152f35b5f613624916137b3565b5f613611565b6040513d5f823e3d90fd5b916135c0565b34612c3c576020366003190112612c3c57613654613dce565b600435601f5f516020615ca15f395f51905f525401555f80f35b34612c3c575f366003190112612c3c57602090601c5f516020615ca15f395f51905f525401548152f35b604435906001600160a01b0382168203612c3c57565b606435906001600160a01b0382168203612c3c57565b600435906001600160a01b0382168203612c3c57565b35906001600160a01b0382168203612c3c57565b35906001600160801b0382168203612c3c57565b9181601f84011215612c3c578235916001600160401b038311612c3c576020808501948460051b010111612c3c57565b606081019081106001600160401b0382111761374d57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761374d57604052565b61018081019081106001600160401b0382111761374d57604052565b608081019081106001600160401b0382111761374d57604052565b90601f801991011681019081106001600160401b0382111761374d57604052565b9291926001600160401b03821161374d57604051916137fd601f8201601f1916602001846137b3565b829481845281830111612c3c578281602093845f960137010152565b9080601f83011215612c3c57816020613834933591016137d4565b90565b6003111561384157565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106138965750505090565b82516001600160a01b0316845260209384019390920191600101613889565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606138f3604085015160a08386015260a0850190613879565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612c3c57518015158103612c3c5790565b3560ff81168103612c3c5790565b3565ffffffffffff81168103612c3c5790565b6040519061398c82613761565b5f6020838281520152565b906040516139a481613761565b602060018294805484520154910152565b604051906139c46040836137b3565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906139f16040836137b3565b60018252603160f81b6020830152565b91908203918211613a0e57565b634e487b7160e01b5f52601160045260245ffd5b8115613a2c570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612c3c575160ff81168103612c3c5790565b60ff16604d8111613a0e57600a0a90565b81810292918115918404141715613a0e57565b9190826040910312612c3c57604051613a9581613761565b6020808294803584520135910152565b6001600160401b03811161374d5760051b60200190565b929190613ac881613aa5565b93613ad660405195866137b3565b602085838152019160051b8101928311612c3c57905b828210613af857505050565b60208091613b05846136da565b815201910190613aec565b91908201809211613a0e57565b9190811015613b2d5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015613b2d5760209160051b010190565b90604051613b6281613761565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612c3c5790565b613bb05f516020615ca15f395f51905f525442906155cb565b600301905f5b838110613bc65750505050600190565b613bd46110ae828685613b1d565b6001600160a01b03165f9081526020849052604090205460ff1615613bfb57600101613bb6565b505050505f90565b60405190613c1082613732565b5f6040838281528260208201520152565b90604051613c2e81613732565b60406002829480548452600181015460208501520154910152565b60405190613c5682613798565b5f606083604051613c6681613761565b83815283602082015281528260208201528160408201520152565b60405190613c8e82613798565b815f81525f6020820152613ca0613c49565b60408201526060613caf613c49565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ce5575050613ce3925003836137b3565b565b84546001600160a01b0316835260019485019487945060209093019201613cce565b60205f516020615ca15f395f51905f5254015490613d2481613837565b80613d30575060101c90565b90600160ff92613d3f81613837565b03613d4b5760081c1690565b1690565b5f198114613a0e5760010190565b6001600160a01b03168015613dbb575f516020615c415f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615c415f395f51905f52546001600160a01b03163303613dee57565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615cc15f395f51905f525416613e1957565b63d93c066560e01b5f5260045ffd5b9190915f516020615ca15f395f51905f52549260018401541561008257815f5260198401602052600260ff60405f205416613e6281613837565b0361428f57815f5260205260405f206040516103008101908082106001600160401b03831117612c3c576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612c3c5760018060a01b0382165f52601a84016020528060405f2055601b84016142548154613d4f565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ca15f395f51905f52549260018401541561008257815f5260198401602052600260ff60405f2054166142d881613837565b0361428f57815f5260205260405f2060405160608101908082106001600160401b03831117612c3c57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612c3c5760018060a01b0382165f52601a84016020528060405f2055601b84016142548154613d4f565b435f1981019392908411613a0e5760ff164381106143e657505f925b838110156143c2575b505f925050565b80408281036143d45750600193505050565b156143e1575f19016143b2565b6143bb565b6143f09043613a01565b926143b2565b903590601e1981360301821215612c3c57018035906001600160401b038211612c3c57602001918160051b36038313612c3c57565b903590605e1981360301821215612c3c570190565b9060808101600161445182846143f6565b9050116149335761446281836143f6565b90501561490c57614472916143f6565b15613b2d57806144819161442b565b9161448c83806143f6565b9190928260051b9383850460201484151715613a0e576144ae85969495615563565b925f945f97601a60fe19853603019501965b888a101561486f578960051b85013586811215612c3c5785016144e281613b83565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036145148261554f565b1615158061485c575b61484b575b6001600160a01b0361453384613b83565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b03906145b2906001600160a01b03614570856136da565b1660248901526020840135604489015261458c60408501614d55565b151560648901526001600160a01b036145a7606086016136da565b1660848901526136ee565b1660a48601526145c460a08201614d55565b151560c486015236819003601e190160c082013581811215612c3c578201602081359101936001600160401b038211612c3c576060820236038513612c3c57819061010060e48a015252610144870193905f905b8082106148015750505060e082013590811215612c3c5701803560208201926001600160401b038211612c3c578160051b908136038513612c3c5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106146f45750505050505050602093916001600160801b03848093039316905af190811561362a575f916146c2575b50816020916001938a0152019901986144c0565b90506020813d82116146ec575b816146dc602093836137b3565b81010312612c3c575160016146ae565b3d91506146cf565b919395979850919395601f19848203018752873582811215612c3c578301602081013582526001600160a01b0361472d604083016136da565b1660208301526060810135603e193683900301811215612c3c578101602081013591906040016001600160401b038311612c3c578236038113612c3c57829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361479c608083016136ee565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612c3c57836020936147de60e086956101009560a060019a015201614d55565b151560c0830152601f80199101160101990197019401918a98979695939161467d565b90919460608060019288358152838060a01b0361482060208b016136da565b1660208201526001600160801b0361483a60408b016136ee565b166040820152019601920190614618565b90506148568161554f565b90614522565b5061486960a08401614977565b1561451d565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a10135806148dd575b604051916020830193845260408301526060820152606081526148d76080826137b3565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a16148b3565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612c3c57018035906001600160401b038211612c3c57602001918160061b36038313612c3c57565b358015158103612c3c5790565b60c08201600161499482856143f6565b905011614d14576149a581846143f6565b90501561490c576149b690836143f6565b15613b2d57803590607e1981360301821215612c3c570191606083019060206149de8361396c565b91019065ffffffffffff806149f28461396c565b1691161015614d0557614a048261396c565b65ffffffffffff80600286015460201c16911610614cf657614a4a65ffffffffffff614a43614a3d82614a368761396c565b1687615588565b9361396c565b1684615588565b1115614ce7576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614a9083614a88898961442b565b01358b613b10565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561362a575f91614cc8575b5015614cb9575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561362a575f95614c81575b5090614b159161442b565b91614b1f8261396c565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612c3c578101602081359101936001600160401b038211612c3c578160061b36038513612c3c5760606044890152819052869360c485019392915f5b818110614c4957505050836020959365ffffffffffff829484895f9601356064860152614bb8604060018060a01b0392016136da565b16608485015216602483015203925af191821561362a575f92614c13575b50614be09061396c565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526148d76066826137b3565b9091506020813d602011614c41575b81614c2f602093836137b3565b81010312612c3c575190614be0614bd6565b3d9150614c22565b919550919293604080600192838060a01b03614c648a6136da565b168152602089013560208201520196019101918895949392614b82565b919094506020823d602011614cb1575b81614c9e602093836137b3565b81010312612c3c57905193614b15614b0a565b3d9150614c91565b6367b9145160e01b5f5260045ffd5b614ce1915060203d6020116107175761070981836137b3565b5f614abd565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612c3c57018035906001600160401b038211612c3c57602001918136038313612c3c57565b35908115158203612c3c57565b9060e081016001614d7382846143f6565b9050116151dc57614d8481836143f6565b90501561490c57614d94916143f6565b15613b2d5780359060be1981360301821215612c3c570160808101614db981836143f6565b9050156151cd5765ffffffffffff600284015460201c1691614ddb8342613a01565b614dea60168601548092613a22565b9360a08301359460018101809111613a0e5785036151be57614e0f85614e1593613a6a565b90613b10565b93614e24601782015486613a01565b42106151af57614e33906155b0565b91600583019342855410156151a057614e4b83614977565b926020810190606081019361254e614e87614e668785614d23565b9190614e7285876143f6565b949091614e7f368a613a7d565b9436916137d4565b976150e7575b50505f989798976003600489019801985b8854811015614ed5575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614e9e565b5090919293949596985f5b8851811015614f21576001906001600160a01b03614efe828c613b41565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614ee0565b50929598909396919497508151916001600160401b03831161374d57600160401b831161374d5760209082548484558085106150cc575b5001905f5260205f205f5b8381106150af5750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612c3c576040519260a08401908482106001600160401b0383111761374d57614fd791604052614fce84614d55565b85523690613a7d565b9460208401958652356001600160401b038111612c3c57614ffb9036908401613819565b604084015235906001600160401b038211612c3c570136601f82011215612c3c5761502d903690602081359101613abc565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b81811061508d575050508152038082526148d790602001826137b3565b82516001600160a01b0316855286955060209485019490920191600101615070565b82516001600160a01b031681830155602090920191600101614f63565b6150e190845f528580855f20019103906154d1565b5f614f58565b8051906020810191825170014551231950b75fc4402da1732fc9bebe198210918261518f575b5050156151805751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561517357526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614e8d565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6151999250615b71565b5f8061510d565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c1661520a4284615588565b61522261521c60168601548093613a6a565b83613b10565b91828410808061543e575b1561540c575083106153fe576152439083613b10565b106153ef57615253905b826155cb565b94601960f81b5f523060601b60025260165260365f2093600281101561384157806152e4575050600181036152d55715613b2d576152948161529b92614d23565b36916137d4565b9160608351036152c657826020613834940151606060408301519201519260018154910154906155e7565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146152f75750505050505f90565b61531c90600860048796970154910154906001600160801b038260801c921690615524565b925f9260035f9201915b868110156153e45761534c6105a96153466152948460051b860186614d23565b86615b37565b6001600160a01b0381165f9081526020859052604090205460ff16615377575b506001905b01615326565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c156153bc5750600190615371565b9460016153ca92965d613d4f565b938585146153d8575f61536c565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b939291505042821161542f5761525392615427575b5061524d565b90505f615421565b6347860b9760e01b5f5260045ffd5b5061544d601887015485613b10565b421061522d565b61545c613c03565b5063ffffffff43116154b95765ffffffffffff42116154a15760405161548181613732565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b8281106154df57505050565b5f828201556001016154d3565b90600182811c9216801561551a575b602083101461550657565b634e487b7160e01b5f52602260045260245ffd5b91607f16916154fb565b6001600160801b0380921602911661553c8183613a22565b918115613a2c5706156138345760010190565b356001600160801b0381168103612c3c5790565b6040519190601f01601f191682016001600160401b03811183821017612c3c57604052565b60166155a76138349365ffffffffffff600285015460201c1690613a01565b91015490613a22565b6155ba4282615ad7565b156155c55760090190565b600f0190565b906155d69082615ad7565b156155e157600f0190565b60090190565b92939194906155f68587615b71565b156157895782156157895770014551231950b75fc4402da1732fc9bebe19831015615789576001169061010e61562b81615563565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156153e45784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6040515f516020615c215f395f51905f5254905f816157b1846154ec565b9182825260208201946001811690815f1461595957506001146158ee575b6157db925003826137b3565b5190206040515f516020615c615f395f51905f5254905f816157fc846154ec565b9182825260208201946001811690815f146158d2575060011461587a575b615826925003826137b3565b5190206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526148d760c0826137b3565b505f516020615c615f395f51905f525f90815290915f516020615d015f395f51905f525b8183106158b65750509060206158269282010161581a565b602091935080600191548385880101520191019091839261589e565b60ff191686525061582692151560051b8201602001905061581a565b505f516020615c215f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061593d5750509060206157db928201016157cf565b6020919350806001915483858801015201910190918392615925565b60ff19168652506157db92151560051b820160200190506157cf565b60ff5f516020615ce15f395f51905f525460401c161561599157565b631afcd79f60e31b5f5260045ffd5b6159a8613c49565b50600281015460058201546040519290916159e8916004916001600160a01b03166159d286613798565b6159db82613997565b8652602086015201613cb4565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615a6c579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561362a575f516001600160a01b03811615615a6257905f905f90565b505f906001905f90565b5050505f9160039190565b60048110156138415780615a89575050565b60018103615aa05763f645eedf60e01b5f5260045ffd5b60028103615abb575063fce698f760e01b5f5260045260245ffd5b600314615ac55750565b6335e2f38360e21b5f5260045260245ffd5b906014600e830154920154808314615b2857818184109311918215911115918190615b21575b15615b125782615b0c57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615afd565b63f26224af60e01b5f5260045ffd5b8151919060418303615b6757615b609250602082015190606060408401519301515f1a906159f5565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b905f8091602081519101845af48080615c0d575b15615bc85750506040513d81523d5f602083013e60203d82010160405290565b15615bed57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15615bfe576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580615ba85750813b1515615ba856fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:51096:164:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;7983:34:18;7979:146;;-1:-1:-1;1553:51096:164;;;;;;;;1076:13:19;1553:51096:164;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;8085:29:18;;1553:51096:164;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;1553:51096:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613e01565b5f516020615ca15f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e71461366e575080630b9737ce1461363b5780630c18d277146135705780630d91bf2a146133a257806311bec80d1461336f5780631622441d14612efd578063188509e914612ecf57806328e24b3d14612ea15780632ae9c60014612e745780633644e51514612e595780633683c4d214612d9c5780633bd109fa14612d4d5780633d43b41814612cf95780633f4ba83a14612c795780634f1ef28614612aa157806352d1902d14612a3a57806353f7fd48146120885780635734c0e114611f485780635c975abb14611f195780636c2eb350146119d5578063715018a61461196c57806371a8cf2d1461193e5780637ecebe00146118e657806382bdeaad146117df5780638456cb591461176c57806384b0196e1461153b57806384d22a4f146114dd57806388f50cf0146114a45780638b1edf1e146114455780638c4ace6a146112ea5780638da5cb5b146112b55780638f381dbe1461126f5780639067088e1461122657806396a2ddfa146111f85780639eb939a81461119f578063a5d53a441461111f578063ad3cb1cc146110d6578063baaf020114610fd9578063c13911e814610f93578063c2eb812f14610bef578063ca1e781914610b9f578063cacf66ab14610b67578063d456fd5114610b31578063e3a6684f14610af2578063e6fabc0914610ab9578063ed01826214610a8f578063ed612f8c14610a57578063edc8722514610a02578063ee32004f1461081c578063f0fd702a146103d8578063f1ef31ec146103aa578063f2fde38b1461037d578063f4f20ac0146103445763facd743b0361000f5734610341576020366003190112610341576103036136c4565b600361031e5f516020615ca15f395f51905f525442906155cb565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103415780600319360112610341575f516020615ca15f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610341576020366003190112610341576103a761039a6136c4565b6103a2613dce565b613d5d565b80f35b50346103415780600319360112610341576020601f5f516020615ca15f395f51905f52540154604051908152f35b503461034157610140366003190112610341576103f36136c4565b602435906044356001600160401b03811161081857610416903690600401613702565b90916064359060843560ff811681036108145760e4359060ff821682036108105761043f613e01565b874915610801575f516020615ca15f395f51905f5254946001860154156107f2576019860196888a528760205260ff60408b20541661047d81613837565b6107e357895b80496107d5578083036107be5750895b82811061077757508542116107635760405160208101906001600160fb1b03841161075f576104de6020826105a9956105b29760051b8091873781010301601f1981018352826137b3565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261057760e0826137b3565b519020610582615793565b906040519161190160f01b83526002830152602282015260c43591604260a43592206159f5565b90929192615a77565b6001600160a01b031681810361074a57505086906105e760018060a01b0360068701541695601f601e82015491015490613b10565b93853b156107465760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610729575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af190811561071e5784916106ef575b50156106e05781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b610711915060203d602011610717575b61070981836137b3565b810190613946565b5f610698565b503d6106ff565b6040513d86823e3d90fd5b81610736919493946137b3565b6107425790855f61064b565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610785838686613b1d565b3514610792838686613b1d565b3590156107a3575050600101610493565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107de90613d4f565b610483565b6304c51a3360e31b8a5260048afd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b50346103415761012036600319011261034157610837613698565b61083f6136ae565b6084356001600160801b038116908181036109aa578460c43560ff8116810361099b5761086a613e01565b610878602435600435613e28565b6006015490936001600160a01b0390911691823b15610818576108c08480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016138fc565b038183885af16109ed575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109e25786916109c3575b50156109b4576001600160a01b03908116939081166109ae575033915b833b156109aa57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099f57610986575b602082604051908152f35b6109918380926137b3565b61099b578161097b565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610930565b631e4e7d0960e21b8552600485fd5b6109dc915060203d6020116107175761070981836137b3565b5f610913565b6040513d88823e3d90fd5b816109f7916137b3565b61074657825f6108cb565b50346103415780600319360112610341576020610a4f5f516020615ca15f395f51905f525460086004610a3542846155cb565b0154910154906001600160801b038260801c921690615524565b604051908152f35b503461034157806003193601126103415760206004610a855f516020615ca15f395f51905f525442906155cb565b0154604051908152f35b503461034157602036600319011261034157600435906003821015610341576020610a4f83613d07565b50346103415780600319360112610341575f516020615ca15f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610341578060031936011261034157604060085f516020615ca15f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610341578060031936011261034157602065ffffffffffff60045f516020615ca15f395f51905f5254015416604051908152f35b5034610341578060031936011261034157602065ffffffffffff60025f516020615ca15f395f51905f52540154821c16604051908152f35b5034610341578060031936011261034157610beb610bd76004610bd15f516020615ca15f395f51905f525442906155cb565b01613cb4565b604051918291602083526020830190613879565b0390f35b5034610341578060031936011261034157604051610c0c8161377c565b610c14613c03565b8152604051610c2281613761565b5f8152602081015f90526020820152610c39613c03565b6040820152610c46613c81565b6060820152604051610c5781613761565b5f80825260208201526080820152610c6d613c03565b60a08201528160c08201528160e082015281610100820152816101208201528161014082015261016001525f516020615ca15f395f51905f5254610caf613c81565b50610cbc600982016159a0565b90610cc9600f82016159a0565b60088201549260405193610cdc85613798565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e830154601f8401549160208501549360405196610d2c8861377c565b604051610d3881613732565b60018801548152600288015463ffffffff8116602083015260201c65ffffffffffff166040820152885260405198610d6f8a613761565b60038801548a52600488015465ffffffffffff1660208b015260208901998a5260405190610d9c82613732565b60058901546001600160a01b03908116835260068a01548116602084015260078a0154166040808401919091528a0191825260608a01908152610de160158a01613b55565b9860808b01998a52601601610df590613c21565b9160a08b0192835260c08b0193845260e08b019485526101008b019586526101208b019687526101408b019788526101608b019889526040519b8c9b60208d52518c815190602001528c602082015163ffffffff1690604001526040015165ffffffffffff1660608d015251805160808d01526020015165ffffffffffff1660a08c015251600160a01b6001900381511660c08c0152600160a01b6001900360208201511660e08c0152600160a01b600190039060400151166101008b0152516101208a01610280905280516001600160801b03166102a08b015260208101516001600160801b03166102c08b015260408101516102e08b01608090526103208b01610f00916138b5565b90606001519061029f198b8203016103008c0152610f1d916138b5565b975180516001600160401b03166101408b0152602001516001600160801b03166101608a01525180516101808a015260208101516101a08a0152604001516101c0890152516101e0880152516102008701525161ffff166102208601525161024085015251610260840152516102808301520390f35b50346103415760203660031901126103415760ff604060209260195f516020615ca15f395f51905f5254016004358252845220541660405190610fd581613837565b8152f35b5034610341576020366003190112610341576004356001600160401b03811161099b5761100a903690600401613702565b905f516020615ca15f395f51905f52549061102483613aa5565b9161103260405193846137b3565b83835261103e84613aa5565b602084019490601f1901368637601a869201915b81811061109d57868587604051928392602084019060208552518091526040840192915b818110611084575050500390f35b8251845285945060209384019390920191600101611076565b806110b36110ae6001938588613b1d565b613b83565b828060a01b03165f528360205260405f20546110cf8288613b41565b5201611052565b503461034157806003193601126103415750610beb6040516110f96040826137b3565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613855565b50346103415780600319360112610341575f516020615ca15f395f51905f52546001600160a01b03906002906111569042906155cb565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c80825201906040820191826040526020835261119a603f19926060830190613855565b030190f35b50346103415780600319360112610341576111b8613c03565b5060606111d560165f516020615ca15f395f51905f525401613c21565b6111f660405180926040809180518452602081015160208501520151910152565bf35b50346103415780600319360112610341576020601b5f516020615ca15f395f51905f52540154604051908152f35b5034610341576020366003190112610341576112406136c4565b601a5f516020615ca15f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461034157602036600319011261034157600435906001600160401b0382116103415760206112ab6112a53660048601613702565b90613b97565b6040519015158152f35b50346103415780600319360112610341575f516020615c415f395f51905f52546040516001600160a01b039091168152602090f35b50346103415760a03660031901126103415760043560443560ff8116810361074657611314613e01565b824915611436575f516020615ca15f395f51905f52546001810154156114275760198101918385528260205260ff60408620541661135181613837565b611418576006820154601e9092015485926001600160a01b031691823b156108185760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611403575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610686565b8161140d916137b3565b61074657825f6113ce565b6304c51a3360e31b8552600485fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103415780600319360112610341575f516020615ca15f395f51905f525460018101908154611495576002015463ffffffff1640908115611486575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103415780600319360112610341575f516020615ca15f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103415780600319360112610341576114f661397f565b50604061151360155f516020615ca15f395f51905f525401613b55565b6111f6825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103415780600319360112610341576040519080825f516020615c215f395f51905f52549161156b836154ec565b808352926001811690811561174d57506001146116e3575b61158f925003836137b3565b6040519080825f516020615c615f395f51905f5254916115ae836154ec565b80835292600181169081156116c4575060011461166d575b6115da9193925093611611959403836137b3565b602061161f604051936115ed83866137b3565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613855565b908682036040880152613855565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b82811061165657505050500390f35b835185528695509381019392810192600101611647565b505f516020615c615f395f51905f5283529082905f516020615d015f395f51905f525b8183106116a85750509060206115da928201016115c6565b6020919350806001915483858901015201910190918492611690565b602092506115da94915060ff191682840152151560051b8201016115c6565b505f516020615c215f395f51905f5283529082907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061173157505090602061158f92820101611583565b6020919350806001915483858901015201910190918492611719565b6020925061158f94915060ff191682840152151560051b820101611583565b5034610341578060031936011261034157611785613dce565b61178d613e01565b600160ff195f516020615cc15f395f51905f525416175f516020615cc15f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610341576020366003190112610341576004356001600160401b03811161099b57611810903690600401613702565b905f516020615ca15f395f51905f52549061182a83613aa5565b9161183860405193846137b3565b83835261184484613aa5565b602084019490601f19013686376019869201915b8181106118af57868587604051928392602084019060208552518091526040840192915b81811061188a575050500390f35b91935091602080600192865161189f81613837565b815201940191019184939261187c565b806118bd6001928487613b1d565b3588528360205260ff6040892054166118d68288613b41565b6118df82613837565b5201611858565b5034610341576020366003190112610341576020906040906001600160a01b0361190e6136c4565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610341578060031936011261034157602060035f516020615ca15f395f51905f52540154604051908152f35b5034610341578060031936011261034157611985613dce565b5f516020615c415f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346103415780600319360112610341576119ee613dce565b5f516020615ce15f395f51905f525460ff8160401c16908115611f04575b50611ef5575f516020615ce15f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615c415f395f51905f5254611a66906001600160a01b0316611a5e615975565b6103a2615975565b611a6e6139b5565b90611a776139e2565b90611a80615975565b611a88615975565b82516001600160401b038111611df857611aaf5f516020615c215f395f51905f52546154ec565b601f8111611e91575b506020601f8211600114611e1757829394829392611e0c575b50508160011b915f199060031b1c1916175f516020615c215f395f51905f52555b81516001600160401b038111611df857611b195f516020615c615f395f51905f52546154ec565b601f8111611d9e575b50602092601f8211600114611d2557928293829392611d1a575b50508160011b915f199060031b1c1916175f516020615c615f395f51905f52555b5f516020615ca15f395f51905f5254611b74615454565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611bc281613761565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611bed42846155cb565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099f57611c3e918491611ceb575b50613a59565b806103e8026103e881048203611cd757601e830155806101f402906101f4820403611cc357601f820155602061010091015560ff60401b195f516020615ce15f395f51905f5254165f516020615ce15f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611d0d915060203d602011611d13575b611d0581836137b3565b810190613a40565b5f611c38565b503d611cfb565b015190505f80611b3c565b601f198216935f516020615c615f395f51905f52845280842091845b868110611d865750836001959610611d6e575b505050811b015f516020615c615f395f51905f5255611b5d565b01515f1960f88460031b161c191690555f8080611d54565b91926020600181928685015181550194019201611d41565b81811115611b22575f516020615c615f395f51905f528352611dea905f516020615d015f395f51905f5290601f840160051c9060208510611df0575b601f82910160051c0391016154d1565b5f611b22565b859150611dda565b634e487b7160e01b82526041600452602482fd5b015190505f80611ad1565b5f516020615c215f395f51905f52835280832090601f198316845b818110611e7957509583600195969710611e61575b505050811b015f516020615c215f395f51905f5255611af2565b01515f1960f88460031b161c191690555f8080611e47565b9192602060018192868b015181550194019201611e32565b81811115611ab8575f516020615c215f395f51905f528352611eef907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611df057601f82910160051c0391016154d1565b5f611ab8565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611a0c565b5034610341578060031936011261034157602060ff5f516020615cc15f395f51905f5254166040519015158152f35b503461034157602036600319011261034157600435600381101561099b57611f6e613dce565b60205f516020615ca15f395f51905f5254019081548060101c9160ff8260081c169060ff831690611f9e81613837565b80611fe8575050505060018101809111611cc3577f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9160209160101b80915b55604051908152a180f35b60019192939450611ff881613837565b03612040575060018101809111611cd757916020917f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9360081b9061ffff1916178091611fdd565b91905060018201809211611cd757916020918361ff007f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec95169061ffff191617178091611fdd565b503461034157610160366003190112610341576120a36136c4565b906024356001600160a01b0381169081900361099b576120c1613698565b926120ca6136ae565b9260a43560c43560843560403660e31901126108185761012435966001600160401b0388116109aa57366023890112156109aa578760040135926001600160401b03841161074257366024858b01011161074257610144356001600160401b0381116108145761213e903690600401613702565b9590935f516020615ce15f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612a32575b6001149081612a28575b159081612a1f575b50612a10576121c0908a60016001600160401b03195f516020615ce15f395f51905f525416175f516020615ce15f395f51905f52556129e0575b611a5e615975565b6121c8615975565b6121d06139b5565b6121d86139e2565b906121e1615975565b6121e9615975565b8051906001600160401b0382116129cc5781908b6122145f516020615c215f395f51905f52546154ec565b601f811161297b575b5050602090601f83116001146128ff578c926128f4575b50508160011b915f199060031b1c1916175f516020615c215f395f51905f52555b8051906001600160401b0382116128e057819061227f5f516020615c615f395f51905f52546154ec565b601f8111612884575b50602090601f8311600114612808578b926127fd575b50508160011b915f199060031b1c1916175f516020615c615f395f51905f52555b6122c7615975565b42156127ee5781156127df57818111156127d057600a6122e78383613a01565b048310156127c1576040809a81516122ff83826137b3565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612332613dce565b5f1991519020018a5260ff1960208b2016809e815f516020615ca15f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a1612387615454565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906123d182613732565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561244561397f565b50895161245181613761565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061249681613732565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa9081156127b757906124f6918691611ceb5750613a59565b806103e8026103e8810482036127a357601e8a0155806101f402906101f482040361278f579061255691601f8a015561254e8751986125348a613761565b60e4358a5260208a019461010435865260243692016137d4565b933691613abc565b958051825170014551231950b75fc4402da1732fc9bebe198210918261277e575b50501561276f5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156127625752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b825481101561261f5782845260208085208201546001600160a01b03165f90815290869052869020805460ff191690556001016125e7565b509195949094865b8351811015612667576001906001600160a01b036126458287613b41565b5116828060a01b03165f5285602052865f208260ff1982541617905501612627565b50925092938151916001600160401b03831161274e57600160401b831161274e576020908254848455808510612733575b500190865260208620865b838110612716575050505042600e82015560206101009101556126c4575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615ce15f395f51905f5254165f516020615ce15f395f51905f52555160018152a180f35b82516001600160a01b0316818301556020909201916001016126a3565b61274890848a528580858c20019103906154d1565b5f612698565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6127889250615b71565b5f80612577565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f8061229e565b5f516020615c615f395f51905f528c52818c209250601f1984168c5b81811061286c5750908460019594939210612854575b505050811b015f516020615c615f395f51905f52556122bf565b01515f1960f88460031b161c191690555f808061283a565b92936020600181928786015181550195019301612824565b82811115612288575f516020615c615f395f51905f528c526128d2905f516020615d015f395f51905f5290601f850160051c908e602087106128d8575b50601f82910160051c0391016154d1565b5f612288565b91508e6128c1565b634e487b7160e01b8a52604160045260248afd5b015190505f80612234565b5f516020615c215f395f51905f528d52818d209250601f1984168d5b818110612963575090846001959493921061294b575b505050811b015f516020615c215f395f51905f5255612255565b01515f1960f88460031b161c191690555f8080612931565b9293602060018192878601518155019501930161291b565b8381111561221d575f516020615c215f395f51905f526129bd92528d6020812091601f860160051c91602087106129c45750601f82910160051c0391016154d1565b8b5f61221d565b91508f6128c1565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615ce15f395f51905f525416175f516020615ce15f395f51905f52556121b8565b63f92ee8a960e01b8952600489fd5b9050155f61217e565b303b159150612176565b8b915061216c565b50346103415780600319360112610341577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612a925760206040515f516020615c815f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261034157612ab66136c4565b906024356001600160401b03811161099b57612ad6903690600401613819565b916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612c57575b50612c4857612b19613dce565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596612c10575b50612b5e57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615c815f395f51905f528103612bfe5750823b15612bec575f516020615c815f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115612bd357612bcf91615b94565b5080f35b505034612bdd5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612c40575b81612c2c602093836137b3565b81010312612c3c5751945f612b45565b5f80fd5b3d9150612c1f565b63703e46dd60e11b8252600482fd5b5f516020615c815f395f51905f52546001600160a01b0316141590505f612b0c565b5034610341578060031936011261034157612c92613dce565b5f516020615cc15f395f51905f525460ff811615612cea5760ff19165f516020615cc15f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461034157602036600319011261034157612d136136c4565b612d1b613dce565b5f516020615ca15f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610341578060031936011261034157612d6661397f565b506040612d8a612d855f516020615ca15f395f51905f525442906155cb565b613997565b60208251918051835201516020820152f35b503461034157606036600319011261034157612db6613698565b612dbe613e01565b612dcc60243560043561429e565b506001600160a01b0390811691908116612e545750335b5f516020615ca15f395f51905f5254600501546001600160a01b0316823b1561081857604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af1801561099f5761098657602082604051908152f35b612de3565b50346103415780600319360112610341576020610a4f615793565b50346103415780600319360112610341576020805f516020615ca15f395f51905f52540154604051908152f35b5034610341578060031936011261034157602060015f516020615ca15f395f51905f52540154604051908152f35b50346103415780600319360112610341576020601e5f516020615ca15f395f51905f52540154604051908152f35b5034610341576060366003190112610341576001600160401b036004351161034157610100600435360360031901126103415760026024351015610341576044356001600160401b03811161099b57612f5a903690600401613702565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6133605760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ca15f395f51905f52549060018201541561142757815415613304575b600382015460446004350135036132f55765ffffffffffff60048301541665ffffffffffff612ff960246004350161396c565b16106132e75761300e60043560040183614440565b9261302360a460043501600435600401614942565b808096925060051b04602014851517156127a3576130438560051b615563565b8695865b8188106131b35750613179965060051b90209061306960043560040186614984565b61307860043560040187614d62565b9061308760246004350161396c565b9361309660646004350161395e565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c781526130fb60e7826137b3565b5190209283600382015565ffffffffffff61311a60246004350161396c565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff61316e60246004350161396c565b1693602435916151eb565b156131a457807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b6131c760a460043501600435600401614942565b8910156132d3578860061b8101358a5260198801602052600160ff60408c2054166131f181613837565b036132c457600191602091613287838c60061b83010161321081614977565b156132a35760068d901b8301358e5260198c01855260408e20805460ff19166002179055601c8c01805461324390613d4f565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661327284614977565b1515926040519060061b8701358152a2614977565b908b60061b01358c52825360218b208186015201970196613047565b60068d901b8301358e5260198c01855260408e20805460ff19169055613246565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b61332161331560646004350161395e565b60043560040135614396565b156133515765ffffffffffff61333b60246004350161396c565b164211612fc657631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b503461034157602036600319011261034157613389613dce565b600435601e5f516020615ca15f395f51905f5254015580f35b503461034157610100366003190112610341576133bd613698565b6064356001600160801b03811690818103610818578360a43560ff8116810361099b576133e8613e01565b6133f660243560043561429e565b6006015490936001600160a01b0390911691823b156108185761343d8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016138fc565b038183885af161355b575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613550578591613531575b5015613522576001600160a01b039081169290811661351c575033905b5f516020615ca15f395f51905f5254600501546001600160a01b0316833b156109aa57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af1801561099f5761098657602082604051908152f35b906134ad565b631e4e7d0960e21b8452600484fd5b61354a915060203d6020116107175761070981836137b3565b5f613490565b6040513d87823e3d90fd5b81613565916137b3565b61074657825f613448565b34612c3c576080366003190112612c3c57613589613698565b6135916136ae565b9061359a613e01565b6135a8602435600435613e28565b506001600160a01b0390811691908116613635575033915b813b15612c3c57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561362a5760209261361a575b50604051908152f35b5f613624916137b3565b5f613611565b6040513d5f823e3d90fd5b916135c0565b34612c3c576020366003190112612c3c57613654613dce565b600435601f5f516020615ca15f395f51905f525401555f80f35b34612c3c575f366003190112612c3c57602090601c5f516020615ca15f395f51905f525401548152f35b604435906001600160a01b0382168203612c3c57565b606435906001600160a01b0382168203612c3c57565b600435906001600160a01b0382168203612c3c57565b35906001600160a01b0382168203612c3c57565b35906001600160801b0382168203612c3c57565b9181601f84011215612c3c578235916001600160401b038311612c3c576020808501948460051b010111612c3c57565b606081019081106001600160401b0382111761374d57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761374d57604052565b61018081019081106001600160401b0382111761374d57604052565b608081019081106001600160401b0382111761374d57604052565b90601f801991011681019081106001600160401b0382111761374d57604052565b9291926001600160401b03821161374d57604051916137fd601f8201601f1916602001846137b3565b829481845281830111612c3c578281602093845f960137010152565b9080601f83011215612c3c57816020613834933591016137d4565b90565b6003111561384157565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106138965750505090565b82516001600160a01b0316845260209384019390920191600101613889565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606138f3604085015160a08386015260a0850190613879565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612c3c57518015158103612c3c5790565b3560ff81168103612c3c5790565b3565ffffffffffff81168103612c3c5790565b6040519061398c82613761565b5f6020838281520152565b906040516139a481613761565b602060018294805484520154910152565b604051906139c46040836137b3565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906139f16040836137b3565b60018252603160f81b6020830152565b91908203918211613a0e57565b634e487b7160e01b5f52601160045260245ffd5b8115613a2c570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612c3c575160ff81168103612c3c5790565b60ff16604d8111613a0e57600a0a90565b81810292918115918404141715613a0e57565b9190826040910312612c3c57604051613a9581613761565b6020808294803584520135910152565b6001600160401b03811161374d5760051b60200190565b929190613ac881613aa5565b93613ad660405195866137b3565b602085838152019160051b8101928311612c3c57905b828210613af857505050565b60208091613b05846136da565b815201910190613aec565b91908201809211613a0e57565b9190811015613b2d5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015613b2d5760209160051b010190565b90604051613b6281613761565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612c3c5790565b613bb05f516020615ca15f395f51905f525442906155cb565b600301905f5b838110613bc65750505050600190565b613bd46110ae828685613b1d565b6001600160a01b03165f9081526020849052604090205460ff1615613bfb57600101613bb6565b505050505f90565b60405190613c1082613732565b5f6040838281528260208201520152565b90604051613c2e81613732565b60406002829480548452600181015460208501520154910152565b60405190613c5682613798565b5f606083604051613c6681613761565b83815283602082015281528260208201528160408201520152565b60405190613c8e82613798565b815f81525f6020820152613ca0613c49565b60408201526060613caf613c49565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ce5575050613ce3925003836137b3565b565b84546001600160a01b0316835260019485019487945060209093019201613cce565b60205f516020615ca15f395f51905f5254015490613d2481613837565b80613d30575060101c90565b90600160ff92613d3f81613837565b03613d4b5760081c1690565b1690565b5f198114613a0e5760010190565b6001600160a01b03168015613dbb575f516020615c415f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615c415f395f51905f52546001600160a01b03163303613dee57565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615cc15f395f51905f525416613e1957565b63d93c066560e01b5f5260045ffd5b9190915f516020615ca15f395f51905f52549260018401541561008257815f5260198401602052600260ff60405f205416613e6281613837565b0361428f57815f5260205260405f206040516103008101908082106001600160401b03831117612c3c576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612c3c5760018060a01b0382165f52601a84016020528060405f2055601b84016142548154613d4f565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ca15f395f51905f52549260018401541561008257815f5260198401602052600260ff60405f2054166142d881613837565b0361428f57815f5260205260405f2060405160608101908082106001600160401b03831117612c3c57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612c3c5760018060a01b0382165f52601a84016020528060405f2055601b84016142548154613d4f565b435f1981019392908411613a0e5760ff164381106143e657505f925b838110156143c2575b505f925050565b80408281036143d45750600193505050565b156143e1575f19016143b2565b6143bb565b6143f09043613a01565b926143b2565b903590601e1981360301821215612c3c57018035906001600160401b038211612c3c57602001918160051b36038313612c3c57565b903590605e1981360301821215612c3c570190565b9060808101600161445182846143f6565b9050116149335761446281836143f6565b90501561490c57614472916143f6565b15613b2d57806144819161442b565b9161448c83806143f6565b9190928260051b9383850460201484151715613a0e576144ae85969495615563565b925f945f97601a60fe19853603019501965b888a101561486f578960051b85013586811215612c3c5785016144e281613b83565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036145148261554f565b1615158061485c575b61484b575b6001600160a01b0361453384613b83565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b03906145b2906001600160a01b03614570856136da565b1660248901526020840135604489015261458c60408501614d55565b151560648901526001600160a01b036145a7606086016136da565b1660848901526136ee565b1660a48601526145c460a08201614d55565b151560c486015236819003601e190160c082013581811215612c3c578201602081359101936001600160401b038211612c3c576060820236038513612c3c57819061010060e48a015252610144870193905f905b8082106148015750505060e082013590811215612c3c5701803560208201926001600160401b038211612c3c578160051b908136038513612c3c5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106146f45750505050505050602093916001600160801b03848093039316905af190811561362a575f916146c2575b50816020916001938a0152019901986144c0565b90506020813d82116146ec575b816146dc602093836137b3565b81010312612c3c575160016146ae565b3d91506146cf565b919395979850919395601f19848203018752873582811215612c3c578301602081013582526001600160a01b0361472d604083016136da565b1660208301526060810135603e193683900301811215612c3c578101602081013591906040016001600160401b038311612c3c578236038113612c3c57829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361479c608083016136ee565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612c3c57836020936147de60e086956101009560a060019a015201614d55565b151560c0830152601f80199101160101990197019401918a98979695939161467d565b90919460608060019288358152838060a01b0361482060208b016136da565b1660208201526001600160801b0361483a60408b016136ee565b166040820152019601920190614618565b90506148568161554f565b90614522565b5061486960a08401614977565b1561451d565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a10135806148dd575b604051916020830193845260408301526060820152606081526148d76080826137b3565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a16148b3565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612c3c57018035906001600160401b038211612c3c57602001918160061b36038313612c3c57565b358015158103612c3c5790565b60c08201600161499482856143f6565b905011614d14576149a581846143f6565b90501561490c576149b690836143f6565b15613b2d57803590607e1981360301821215612c3c570191606083019060206149de8361396c565b91019065ffffffffffff806149f28461396c565b1691161015614d0557614a048261396c565b65ffffffffffff80600286015460201c16911610614cf657614a4a65ffffffffffff614a43614a3d82614a368761396c565b1687615588565b9361396c565b1684615588565b1115614ce7576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614a9083614a88898961442b565b01358b613b10565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561362a575f91614cc8575b5015614cb9575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561362a575f95614c81575b5090614b159161442b565b91614b1f8261396c565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612c3c578101602081359101936001600160401b038211612c3c578160061b36038513612c3c5760606044890152819052869360c485019392915f5b818110614c4957505050836020959365ffffffffffff829484895f9601356064860152614bb8604060018060a01b0392016136da565b16608485015216602483015203925af191821561362a575f92614c13575b50614be09061396c565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526148d76066826137b3565b9091506020813d602011614c41575b81614c2f602093836137b3565b81010312612c3c575190614be0614bd6565b3d9150614c22565b919550919293604080600192838060a01b03614c648a6136da565b168152602089013560208201520196019101918895949392614b82565b919094506020823d602011614cb1575b81614c9e602093836137b3565b81010312612c3c57905193614b15614b0a565b3d9150614c91565b6367b9145160e01b5f5260045ffd5b614ce1915060203d6020116107175761070981836137b3565b5f614abd565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612c3c57018035906001600160401b038211612c3c57602001918136038313612c3c57565b35908115158203612c3c57565b9060e081016001614d7382846143f6565b9050116151dc57614d8481836143f6565b90501561490c57614d94916143f6565b15613b2d5780359060be1981360301821215612c3c570160808101614db981836143f6565b9050156151cd5765ffffffffffff600284015460201c1691614ddb8342613a01565b614dea60168601548092613a22565b9360a08301359460018101809111613a0e5785036151be57614e0f85614e1593613a6a565b90613b10565b93614e24601782015486613a01565b42106151af57614e33906155b0565b91600583019342855410156151a057614e4b83614977565b926020810190606081019361254e614e87614e668785614d23565b9190614e7285876143f6565b949091614e7f368a613a7d565b9436916137d4565b976150e7575b50505f989798976003600489019801985b8854811015614ed5575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614e9e565b5090919293949596985f5b8851811015614f21576001906001600160a01b03614efe828c613b41565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614ee0565b50929598909396919497508151916001600160401b03831161374d57600160401b831161374d5760209082548484558085106150cc575b5001905f5260205f205f5b8381106150af5750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612c3c576040519260a08401908482106001600160401b0383111761374d57614fd791604052614fce84614d55565b85523690613a7d565b9460208401958652356001600160401b038111612c3c57614ffb9036908401613819565b604084015235906001600160401b038211612c3c570136601f82011215612c3c5761502d903690602081359101613abc565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b81811061508d575050508152038082526148d790602001826137b3565b82516001600160a01b0316855286955060209485019490920191600101615070565b82516001600160a01b031681830155602090920191600101614f63565b6150e190845f528580855f20019103906154d1565b5f614f58565b8051906020810191825170014551231950b75fc4402da1732fc9bebe198210918261518f575b5050156151805751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561517357526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614e8d565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6151999250615b71565b5f8061510d565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c1661520a4284615588565b61522261521c60168601548093613a6a565b83613b10565b91828410808061543e575b1561540c575083106153fe576152439083613b10565b106153ef57615253905b826155cb565b94601960f81b5f523060601b60025260165260365f2093600281101561384157806152e4575050600181036152d55715613b2d576152948161529b92614d23565b36916137d4565b9160608351036152c657826020613834940151606060408301519201519260018154910154906155e7565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146152f75750505050505f90565b61531c90600860048796970154910154906001600160801b038260801c921690615524565b925f9260035f9201915b868110156153e45761534c6105a96153466152948460051b860186614d23565b86615b37565b6001600160a01b0381165f9081526020859052604090205460ff16615377575b506001905b01615326565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c156153bc5750600190615371565b9460016153ca92965d613d4f565b938585146153d8575f61536c565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b939291505042821161542f5761525392615427575b5061524d565b90505f615421565b6347860b9760e01b5f5260045ffd5b5061544d601887015485613b10565b421061522d565b61545c613c03565b5063ffffffff43116154b95765ffffffffffff42116154a15760405161548181613732565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b8281106154df57505050565b5f828201556001016154d3565b90600182811c9216801561551a575b602083101461550657565b634e487b7160e01b5f52602260045260245ffd5b91607f16916154fb565b6001600160801b0380921602911661553c8183613a22565b918115613a2c5706156138345760010190565b356001600160801b0381168103612c3c5790565b6040519190601f01601f191682016001600160401b03811183821017612c3c57604052565b60166155a76138349365ffffffffffff600285015460201c1690613a01565b91015490613a22565b6155ba4282615ad7565b156155c55760090190565b600f0190565b906155d69082615ad7565b156155e157600f0190565b60090190565b92939194906155f68587615b71565b156157895782156157895770014551231950b75fc4402da1732fc9bebe19831015615789576001169061010e61562b81615563565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156153e45784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6040515f516020615c215f395f51905f5254905f816157b1846154ec565b9182825260208201946001811690815f1461595957506001146158ee575b6157db925003826137b3565b5190206040515f516020615c615f395f51905f5254905f816157fc846154ec565b9182825260208201946001811690815f146158d2575060011461587a575b615826925003826137b3565b5190206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526148d760c0826137b3565b505f516020615c615f395f51905f525f90815290915f516020615d015f395f51905f525b8183106158b65750509060206158269282010161581a565b602091935080600191548385880101520191019091839261589e565b60ff191686525061582692151560051b8201602001905061581a565b505f516020615c215f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061593d5750509060206157db928201016157cf565b6020919350806001915483858801015201910190918392615925565b60ff19168652506157db92151560051b820160200190506157cf565b60ff5f516020615ce15f395f51905f525460401c161561599157565b631afcd79f60e31b5f5260045ffd5b6159a8613c49565b50600281015460058201546040519290916159e8916004916001600160a01b03166159d286613798565b6159db82613997565b8652602086015201613cb4565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615a6c579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561362a575f516001600160a01b03811615615a6257905f905f90565b505f906001905f90565b5050505f9160039190565b60048110156138415780615a89575050565b60018103615aa05763f645eedf60e01b5f5260045ffd5b60028103615abb575063fce698f760e01b5f5260045260245ffd5b600314615ac55750565b6335e2f38360e21b5f5260045260245ffd5b906014600e830154920154808314615b2857818184109311918215911115918190615b21575b15615b125782615b0c57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615afd565b63f26224af60e01b5f5260045ffd5b8151919060418303615b6757615b609250602082015190606060408401519301515f1a906159f5565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b905f8091602081519101845af48080615c0d575b15615bc85750506040513d81523d5f602083013e60203d82010160405290565b15615bed57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15615bfe576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580615ba85750813b1515615ba856fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75","sourceMap":"1553:51096:164:-:0;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;1965:72:60;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;52354:19;;;1553:51096;52354:38;1553:51096;;-1:-1:-1;;;;;52463:9:164;1553:51096;52491:9;1553:51096;;52551:10;-1:-1:-1;1553:51096:164;;;52579:28;;;;;1553:51096;;;;;;52579:42;1553:51096;;;;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20959:38;1553:51096;20959:38;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;15778:40;29051:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29072:15:168;29051:37;;:::i;:::-;15778:40:164;:52;1553:51096;;;;;;-1:-1:-1;1553:51096:164;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;13902:34;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;2378:1:52;1553:51096:164;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;1553:51096:164;;;;;;;;;;;;;;;;20691:52;-1:-1:-1;;;;;;;;;;;1553:51096:164;20691:52;1553:51096;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;29121:11:164;;:16;1553:51096;;-1:-1:-1;;;;;;;;;;;1553:51096:164;29217:19;1553:51096;29217:19;;1553:51096;29217:38;1553:51096;;29310:19;;;1553:51096;;;;;;;;;;;;;;;;:::i;:::-;;;29420:29;29490:27;;;;;29632:39;;;1553:51096;;29752:13;;29767:22;;;;;;30046:15;;;:28;1553:51096;;;;;30310:29;;;-1:-1:-1;;;;;2659:66:164;;;;30310:29;1553:51096;2659:66;8977:25:40;2659:66:164;9031:8:40;2659:66:164;;;;;;;;;30310:29;;1553:51096;;30310:29;;;;;;:::i;:::-;1553:51096;30300:40;;1553:51096;;;;;;;;;;;;993:64:59;1553:51096:164;;;;;;;;;;;;;;;30159:261;1553:51096;30159:261;;1553:51096;2659:66;1553:51096;;2659:66;1553:51096;2659:66;;1553:51096;2659:66;1553:51096;2659:66;;1553:51096;;2659:66;;1553:51096;;2659:66;;1553:51096;2659:66;1553:51096;2659:66;;1553:51096;;30159:261;;;1553:51096;30159:261;;:::i;:::-;1553:51096;30136:294;;3785:23:61;;:::i;:::-;4037:249:43;1553:51096:164;4037:249:43;;-1:-1:-1;;;4037:249:43;;;;;;;;;;1553:51096:164;;;4037:249:43;1553:51096:164;;4037:249:43;;8977:25:40;:::i;:::-;9031:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:51096:164;30564:20;;;2659:66;;1553:51096;;;;30742:100;1553:51096;;;;;30672:32;;;1553:51096;;30742:48;30793:49;30742:48;;;1553:51096;30793:49;;1553:51096;30742:100;;:::i;:::-;30856:77;;;;;;1553:51096;;-1:-1:-1;;;30856:77:164;;-1:-1:-1;;;;;1553:51096:164;;;30856:77;;1553:51096;30896:4;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30856:77;;;;;29747:223;-1:-1:-1;1553:51096:164;;-1:-1:-1;;;30969:57:164;;-1:-1:-1;;;;;1553:51096:164;;;;30969:57;;1553:51096;30896:4;1553:51096;;;;;;;;;;;;;;;;;;;;;;;30969:57;;;;;;;;;;;;;;29747:223;1553:51096;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;31172:32;;;1553:51096;;;-1:-1:-1;;;1553:51096:164;;;;;30969:57;;;;1553:51096;30969:57;1553:51096;30969:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:51096;;;;;;;;;30856:77;;;;;;;;:::i;:::-;1553:51096;;30856:77;;;;;1553:51096;;;;30856:77;1553:51096;;;2659:66;-1:-1:-1;;;2659:66:164;;1553:51096;;;;;2659:66;;;1553:51096;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;29791:3;29837:11;;29870:14;;;;;;:::i;:::-;1553:51096;29870:34;29925:14;;;;;:::i;:::-;1553:51096;;;;;29791:3;;1553:51096;;29752:13;;1553:51096;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;29459:155;29584:19;;;:::i;:::-;29459:155;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;38761:37:164;1553:51096;;;;38761:37;:::i;:::-;38850:32;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;38898:96;;;;;;1553:51096;;;;;;;;;;;;38898:96;;1553:51096;;;;;;;;38938:4;;38918:10;1553:51096;38898:96;;;:::i;:::-;;;;;;;;;1553:51096;-1:-1:-1;;1553:51096:164;;-1:-1:-1;;;39030:79:164;;38918:10;1553:51096;39030:79;;1553:51096;38938:4;1553:51096;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;39030:79;;;;;;;;;;;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;39225:70;1553:51096;;;;38918:10;;39225:70;;39168:238;;;;;1553:51096;;-1:-1:-1;;;39168:238:164;;-1:-1:-1;;;;;1553:51096:164;;;;39168:238;;1553:51096;;;;;;;;;;;;;;;;;;;;;;39168:238;;;;;;;;;39225:70;1553:51096;;;;;;;;39168:238;;;;;;:::i;:::-;1553:51096;;39168:238;;;1553:51096;;;;39168:238;1553:51096;;;;;;;;;39168:238;1553:51096;;;39225:70;;;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;39030:79;;;;1553:51096;39030:79;1553:51096;39030:79;;;;;;;:::i;:::-;;;;;1553:51096;;;;;;;;;38898:96;;;;;:::i;:::-;1553:51096;;38898:96;;;;1553:51096;;;;;;;;;;;;;;17223:211;-1:-1:-1;;;;;;;;;;;1553:51096:164;17320:25;1553:51096;29051:37:168;29072:15;29051:37;;:::i;:::-;17261:38:164;1553:51096;17320:25;;1553:51096;;-1:-1:-1;;;;;1553:51096:164;;;;;17223:211;;:::i;:::-;1553:51096;;;;;;;;;;;;;;;;;;;;;29051:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29072:15:168;29051:37;;:::i;:::-;16837:41:164;1553:51096;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;13359:23;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;16266:25;-1:-1:-1;;;;;;;;;;;1553:51096:164;16266:25;1553:51096;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;13091:40;1553:51096;;;;;;;;;;;;;;;;;;;;;;;12501:32;-1:-1:-1;;;;;;;;;;;1553:51096:164;12501:32;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;29051:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29072:15:168;29051:37;;:::i;:::-;16576:41:164;1553:51096;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;:::i;:::-;-1:-1:-1;34392:28:168;34399:20;;;34392:28;:::i;:::-;34478:20;34471:28;34478:20;;;34471:28;:::i;:::-;11208:25:164;;;1553:51096;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:51096:164;;;;;;;34516:241:168;;1553:51096:164;;34516:241:168;;1553:51096:164;;34516:241:168;;1553:51096:164;11597:33;;;1553:51096;11665:39;;;;1553:51096;11733:33;;;1553:51096;;;11810:48;;;1553:51096;11903:49;;;1553:51096;11983:35;1553:51096;11983:35;;1553:51096;;;;;;;;:::i;:::-;;;;;;:::i;:::-;34399:20:168;11291:19:164;;1553:51096;;;11597:33;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11346:27;;;1553:51096;;;;;;;;;;;;;;11251:778;;1553:51096;;;;;;;;;:::i;:::-;11402:20;;;1553:51096;-1:-1:-1;;;;;1553:51096:164;;;2277:3;;11903:49;1553:51096;;;;;;;;2277:3;34478:20:168;1553:51096:164;;;;;;;;2277:3;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11505:22;;;1553:51096;:::i;:::-;11251:778;1553:51096;11251:778;;1553:51096;;;11552:16;;1553:51096;;;:::i;:::-;11251:778;1553:51096;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;18189:22;-1:-1:-1;;;;;;;;;;;1553:51096:164;18189:22;1553:51096;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:51096:164;;;;19426:28;19358:13;19426:28;;19353:129;19373:23;;;;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;19426:28;1553:51096;;;19398:3;19455:15;;;19426:28;19455:15;;;;:::i;:::-;;:::i;:::-;1553:51096;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;19417:54;;;;:::i;:::-;1553:51096;;19358:13;;1553:51096;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;14899:77;;29051:37:168;;29072:15;;29051:37;:::i;:::-;14899:77:164;1553:51096;;;9308:329:170;1553:51096:164;;;;;9308:329:170;;;;;;;;;;;;;;;;;;;;1553:51096:164;9308:329:170;;;;1553:51096:164;9308:329:170;1553:51096:164;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21990:19;-1:-1:-1;;;;;;;;;;;1553:51096:164;21990:19;1553:51096;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19698:36;-1:-1:-1;;;;;;;;;;;1553:51096:164;19698:36;1553:51096;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;18951:31;-1:-1:-1;;;;;;;;;;;1553:51096:164;18951:31;:43;1553:51096;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;26462:11:164;;:16;1553:51096;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;26558:19;;1553:51096;26558:38;1553:51096;;26651:19;;;1553:51096;;;;;;;;;;;;;;;;:::i;:::-;;;26802:32;;;1553:51096;26864:48;;;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;26926:78;;;;;1553:51096;;-1:-1:-1;;;26926:78:164;;26946:10;1553:51096;26926:78;;1553:51096;26966:4;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26926:78;;;;;1553:51096;-1:-1:-1;;1553:51096:164;;-1:-1:-1;;;27040:61:164;;26946:10;1553:51096;27040:61;;1553:51096;26966:4;1553:51096;;;;;;;;;;;;;;;;;;;;;;27040:61;1553:51096;26926:78;;;;;:::i;:::-;1553:51096;;26926:78;;;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;25154:19;;;1553:51096;;;;;25261:26;;1553:51096;;;25251:37;;25307:25;;1553:51096;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;13631:35;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17958:25;-1:-1:-1;;;;;;;;;;;1553:51096:164;17958:25;1553:51096;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5294:13:61;;1553:51096:164;;;;5329:4:61;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:62:52;;:::i;:::-;1965:72:60;;:::i;:::-;3321:4;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;3340:20:60;1553:51096:164;;;987:10:57;1553:51096:164;;3340:20:60;1553:51096:164;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:51096:164;;;;18658:19;18593:13;18658:19;;18588:120;18608:20;;;;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;18630:3;18684:12;;1553:51096;18684:12;;;;:::i;:::-;1553:51096;;;;;;;;;;;;18649:48;;;;:::i;:::-;1553:51096;;;:::i;:::-;;;18593:13;;1553:51096;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;:::i;:::-;;;;993:64:59;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;12785:30;-1:-1:-1;;;;;;;;;;;1553:51096:164;12785:30;1553:51096;;;;;;;;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;1553:51096:164;;;;;;;-1:-1:-1;;;;;1553:51096:164;3996:40:52;1553:51096:164;;3996:40:52;1553:51096:164;;;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;6429:44:18;;;;;1553:51096:164;6425:105:18;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;6959:1:18;;-1:-1:-1;;;;;1553:51096:164;6891:76:18;;:::i;:::-;;;:::i;6959:1::-;1553:51096:164;;:::i;:::-;2213:17;;;:::i;:::-;6891:76:18;;;:::i;:::-;;;:::i;:::-;1553:51096:164;;-1:-1:-1;;;;;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;-1:-1:-1;;;;;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;3593:10:61;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;9981:17;;:::i;:::-;2277:3;;6591:4:18;9959:19:164;;1553:51096;3569:7:61;2277:3:164;;;1553:51096;;2277:3;;;1553:51096;2277:3;1553:51096;2277:3;;;;;1553:51096;2277:3;;;;;;;;;;1553:51096;;;;;;;:::i;:::-;;;;10038:57;1553:51096;10008:27;3593:10:61;10008:27:164;;1553:51096;;;;;;;;;;;;;29051:37:168;29072:15;29051:37;;:::i;:::-;10148:38:164;1553:51096;;;10105:33;;;1553:51096;;2243:1:168;;;;;;;;1553:51096:164;;;;;;;10248:32;;;1553:51096;;;;;;;;;;;10235:57;;;;;;;;10229:63;10235:57;;;;;1553:51096;10229:63;;:::i;:::-;2355:5;;;;;;;;;;10302:48;;;1553:51096;2355:5;2435:3;2355:5;;2435:3;2355:5;;;;;1553:51096;10420:49;;1553:51096;;2955:2;10540:35;;1553:51096;-1:-1:-1;;;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;6654:20:18;1553:51096:164;;;7568:1;1553:51096;;6654:20:18;1553:51096:164;;2355:5;-1:-1:-1;;;2277:3:164;;;1553:51096;2277:3;;;;2355:5;-1:-1:-1;;;2277:3:164;;;1553:51096;2277:3;;;;10235:57;;;;1553:51096;10235:57;1553:51096;10235:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:51096;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;3593:10:61;1553:51096:164;;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;7568:1;1553:51096;;;;;;;;;;;;7568:1;1553:51096;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:51096:164;;;-1:-1:-1;;;1553:51096:164;;;;;;2277:3;1553:51096;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;7568:1;1553:51096;;;;;;;;;;;7568:1;1553:51096;;;;;:::i;:::-;;;;6425:105:18;-1:-1:-1;;;6496:23:18;;1553:51096:164;;6496:23:18;6429:44;7568:1:164;1553:51096;;-1:-1:-1;;;;;1553:51096:164;6448:25:18;;6429:44;;;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;2324:62:52;;:::i;:::-;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;23644:38;1553:51096;;;;2955:2;1553:51096;;;;3020:1;1553:51096;23815:91;23939:56;1553:51096;23939:56;;24006:26;1553:51096;;;:::i;:::-;24046:38;;;3087:24;;;;1553:51096;3087:24;;;;;;;24669:42;2955:2;1553:51096;2955:2;;;24042:542;;;1553:51096;;;;;;24669:42;1553:51096;;24042:542;1553:51096;;;;;;;;;:::i;:::-;24193:38;1553:51096;;3087:24;1553:51096;3087:24;;;;;;;2955:2;1553:51096;2955:2;24669:42;2955:2;3020:1;2955:2;2243:1:168;;;2955:2:164;24284:103;24189:395;;24042:542;;24189:395;3087:24;;;1553:51096;3087:24;;;;;;;2955:2;1553:51096;2955:2;;;24669:42;2955:2;;2243:1:168;;;2955:2:164;24439:113;:134;24189:395;;24042:542;;1553:51096;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;1553:51096:164;;;;;4301:16:18;1553:51096:164;;4724:16:18;;:34;;;;1553:51096:164;;4788:16:18;:50;;;;1553:51096:164;4853:13:18;:30;;;;1553:51096:164;4849:91:18;;;6959:1;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;4977:67:18;;1553:51096:164;6891:76:18;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:51096:164;;:::i;:::-;2213:17;;:::i;:::-;6891:76:18;;;:::i;:::-;;;:::i;:::-;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3593:10:61;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;6891:76:18;;:::i;:::-;5381:15:164;:19;2277:3;;5439:21;;2277:3;;5506:32;;;2277:3;;;5787:2;5751:32;;;;:::i;:::-;2277:3;5731:58;;2277:3;;;1553:51096;;;;;;;;;:::i;:::-;2277:3;1553:51096;;;2277:3;;;;;2324:62:52;;:::i;:::-;1553:51096:164;;1794:178:36;;;;;;;1553:51096:164;;;1794:178:36;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;52072:24;;;5945:17;;:::i;:::-;2277:3;;1553:51096;5923:19;;1553:51096;3569:7:61;2277:3:164;;;1553:51096;2277:3;;;1553:51096;;2277:3;;;;;;1553:51096;2277:3;;;;;;;;;;;1553:51096;;;;;;:::i;:::-;2277:3;;;-1:-1:-1;;;;;1553:51096:164;;;;5995:52;;2277:3;;;1553:51096;;;5995:52;;;;2277:3;;;5972:20;;;;;1553:51096;;;;;;-1:-1:-1;;;;;;1553:51096:164;;;;;;;2277:3;;;1553:51096;;;;;;;;2277:3;;;1553:51096;;;;;;;;;;2243:1:168;6057:25:164;;;2243:1:168;1553:51096:164;;:::i;:::-;;;;;;;:::i;:::-;1895:13:168;1553:51096:164;;2423:18:168;1553:51096:164;24055:89:168;;;1553:51096:164;6245:22;;;1553:51096;;-1:-1:-1;;;;;;2243:1:168;;;;;1553:51096:164;;;;;;;;;:::i;:::-;;;;;6332:65;;1553:51096;;;6332:65;1553:51096;6313:16;;;1553:51096;2277:3;2243:1:168;;1553:51096:164;2243:1:168;;;1553:51096:164;6407:33;;;2243:1:168;;-1:-1:-1;;2243:1:168;1553:51096:164;;;2243:1:168;;;1553:51096:164;;-1:-1:-1;;;6511:37:164;;1553:51096;;;;;6511:37;;1553:51096;6511:37;1553:51096;6511:37;;;;;;;;6505:43;6511:37;;;;;6505:43;;:::i;:::-;2355:5;;;;;;;;;;6558:48;;;1553:51096;2355:5;2435:3;2355:5;;2435:3;2355:5;;;;;6676:49;2435:3;6676:49;1553:51096;6676:49;;1553:51096;2435:3;1553:51096;;;;;;:::i;:::-;;;2435:3;;1553:51096;2435:3;;1553:51096;2435:3;1553:51096;2435:3;;1553:51096;;;;2435:3;:::i;:::-;1553:51096;;2435:3;;:::i;:::-;2243:1:168;;;;;1145:66:90;;1837:24:89;;:71;;;;1553:51096:164;;;;;;2243:1:168;6868:37:164;;;1553:51096;2243:1:168;5787:2:164;1553:51096;;;1745:1673:170;;;;;;;;;;;;;;;;6245:22:164;1745:1673:170;;;;;;;;;;;50954:52:164;;1553:51096;;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;1745:1673:170;;51200:15:164;;;;51083:13;51102:16;;;;51083:13;51127:3;1553:51096;;51098:27;;;;;1553:51096;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;-1:-1:-1;1553:51096:164;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;51083:13;;51098:27;;;;;;;51260:13;51302:3;1553:51096;;51275:25;;;;;1553:51096;;-1:-1:-1;;;;;51342:17:164;1553:51096;51342:17;;:::i;:::-;2277:3;1553:51096;;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;51260:13;;51275:25;;;;;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;51255:163;1553:51096;;;;;;;;;;;;;;;5381:15;;;;;51470:28;;;1553:51096;;2955:2;7132:35;;1553:51096;5064:101:18;;1553:51096:164;;;5064:101:18;1553:51096:164;5140:14:18;1553:51096:164;-1:-1:-1;;;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;5140:14:18;1553:51096:164;;;2277:3;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:51096:164;;;;;;2277:3;1553:51096;1745:1673:170;;;;1553:51096:164;1745:1673:170;;1553:51096:164;-1:-1:-1;;;1553:51096:164;;;;;1837:71:89;1865:43;;;;:::i;:::-;1837:71;;;;2355:5:164;-1:-1:-1;;;2277:3:164;;;1553:51096;2277:3;1553:51096;2277:3;;2355:5;-1:-1:-1;;;2277:3:164;;;1553:51096;2277:3;1553:51096;2277:3;;6511:37;1553:51096;;;;;;;;;2277:3;-1:-1:-1;;;2277:3:164;;1553:51096;2277:3;;;-1:-1:-1;;;2277:3:164;;1553:51096;2277:3;;;-1:-1:-1;;;2277:3:164;;1553:51096;2277:3;;;-1:-1:-1;;;2277:3:164;;1553:51096;2277:3;;1553:51096;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;3593:10:61;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;1553:51096:164;;;;-1:-1:-1;;;1553:51096:164;;;;;;2277:3;1553:51096;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:51096:164;;;;-1:-1:-1;;;1553:51096:164;;;;;;2277:3;1553:51096;4977:67:18;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;4977:67:18;;4849:91;-1:-1:-1;;;4906:23:18;;1553:51096:164;4906:23:18;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;1553:51096:164;;;;;;;;;;;;;4840:6:19;-1:-1:-1;;;;;1553:51096:164;4831:4:19;4823:23;4819:145;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;4819:145:19;-1:-1:-1;;;4924:29:19;;1553:51096:164;;4924:29:19;1553:51096:164;-1:-1:-1;1553:51096:164;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;4417:6:19;1553:51096:164;4408:4:19;4400:23;;;:120;;;;1553:51096:164;4383:251:19;;;2324:62:52;;:::i;:::-;1553:51096:164;;-1:-1:-1;;;5881:52:19;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;5881:52:19;;;;;;;;1553:51096:164;-1:-1:-1;5877:437:19;;-1:-1:-1;;;6243:60:19;;1553:51096:164;;;;;1805:47:11;6243:60:19;5877:437;5975:40;;;-1:-1:-1;;;;;;;;;;;5975:40:19;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;1553:51096:164;;;;;2407:36:11;;;;1553:51096:164;;2458:15:11;:11;;2489:53;;;:::i;:::-;;1553:51096:164;;2454:148:11;6185:9;;;6181:70;;1553:51096:164;;6181:70:11;-1:-1:-1;;;6221:19:11;;1553:51096:164;;6221:19:11;1744:119;-1:-1:-1;;;1805:47:11;;1553:51096:164;;;1805:47:11;;5971:120:19;-1:-1:-1;;;6042:34:19;;1553:51096:164;;;6042:34:19;;5881:52;;;;1553:51096:164;5881:52:19;;1553:51096:164;5881:52:19;;;;;;1553:51096:164;5881:52:19;;;:::i;:::-;;;1553:51096:164;;;;;5881:52:19;;;;1553:51096:164;-1:-1:-1;1553:51096:164;;5881:52:19;;;-1:-1:-1;5881:52:19;;4383:251;-1:-1:-1;;;4594:29:19;;1553:51096:164;4594:29:19;;4400:120;-1:-1:-1;;;;;;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;4478:42:19;;;-1:-1:-1;4400:120:19;;;1553:51096:164;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;2992:9:60;2988:62;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;3648:22:60;1553:51096:164;;;987:10:57;1553:51096:164;;3648:22:60;1553:51096:164;;2988:62:60;-1:-1:-1;;;3024:15:60;;1553:51096:164;3024:15:60;;1553:51096:164;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;22525:23;;1553:51096;;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29051:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29072:15:168;29051:37;;:::i;:::-;1553:51096:164;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;1965:72:60;;:::i;:::-;32475:36:164;1553:51096;;;;32475:36;:::i;:::-;-1:-1:-1;;;;;;1553:51096:164;;;;32562:70;1553:51096;;;;32599:10;;32562:70;-1:-1:-1;;;;;;;;;;;1553:51096:164;13359:23;;1553:51096;-1:-1:-1;;;;;1553:51096:164;32522:134;;;;;1553:51096;;-1:-1:-1;;;32522:134:164;;-1:-1:-1;;;;;1553:51096:164;;;;32522:134;;1553:51096;;;;;;;;;;;;;;;;;;32522:134;1553:51096;;32522:134;;;;;;;;;1553:51096;;;;;;;;32562:70;;;1553:51096;;;;;;;;;;;;;;3785:23:61;;:::i;1553:51096:164:-;;;;;;;;;;;;;20959:38;1553:51096;-1:-1:-1;;;;;;;;;;;1553:51096:164;20959:38;1553:51096;;;;;;;;;;;;;;;;;;;;;12247:22;-1:-1:-1;;;;;;;;;;;1553:51096:164;12247:22;1553:51096;;;;;;;;;;;;;;;;;;;;;20291:51;-1:-1:-1;;;;;;;;;;;1553:51096:164;20291:51;1553:51096;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;661:66:35;3327:69:39;1860:93:35;;2268:4;661:66;3556:68:39;-1:-1:-1;;;;;;;;;;;1553:51096:164;40137:19;2268:4:35;40137:19:164;;1553:51096;40137:38;1553:51096;;;;40375:20;40371:295;;1553:51096;40779:27;;;1553:51096;;;;40815:33;1553:51096;40779:69;1553:51096;;;;40914:37;;1553:51096;;;40955:21;1553:51096;;;40955:21;;:::i;:::-;1553:51096;-1:-1:-1;1553:51096:164;;41045:28;1553:51096;;;;41045:28;;:::i;:::-;1553:51096;44034:22;;1553:51096;;44034:22;1553:51096;;;;44034:22;:::i;:::-;2355:5;;;;;;;;1553:51096;2355:5;;;;;;;44169:40;2355:5;;;44169:40;:::i;:::-;44219:18;;;44268:22;;;;;;2355:5;41843:146;2355:5;;;;1083:131:88;;1553:51096:164;41185:30;1553:51096;;;;41185:30;;:::i;:::-;41261:33;1553:51096;;;;41261:33;;:::i;:::-;1553:51096;41394:21;1553:51096;;;40955:21;41394;:::i;:::-;1553:51096;41476:13;;1553:51096;;41476:13;;:::i;:::-;1553:51096;;;20564:303:168;1553:51096:164;20564:303:168;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;40815:33;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20564:303:168;;;;;;:::i;:::-;1553:51096:164;20541:336:168;;40779:27:164;;;;;1553:51096;;41748:21;1553:51096;;;40955:21;41748;:::i;:::-;1553:51096;;;;40914:37;;1553:51096;;;;40914:37;;1553:51096;41785:26;1553:51096;;;;;;41785:26;1553:51096;41954:21;1553:51096;;;40955:21;41954;:::i;:::-;1553:51096;;;;41843:146;;:::i;:::-;2102:66;;;3556:68:39;661:66:35;3556:68:39;1553:51096:164;;2102:66;-1:-1:-1;;;2102:66:164;;1553:51096;;2102:66;44292:3;44354:22;44034;1553:51096;;44034:22;1553:51096;;;;44354:22;:::i;:::-;1553:51096;;;;;;;;;;;;;44419:19;;;1553:51096;;2268:4:35;1553:51096:164;;;;;;;;;:::i;:::-;44419:79;1553:51096;;2268:4:35;1553:51096:164;;;44997:17;1553:51096;;;;;;44577:17;;;;:::i;:::-;;;;1553:51096;;;;;;;;;44419:19;;;1553:51096;;;;;;;-1:-1:-1;;1553:51096:164;;;;;44700:39;;;1553:51096;;44700:41;;;:::i;:::-;1553:51096;;44573:270;44895:17;44862:51;44895:17;;;;:::i;:::-;1553:51096;;;;;;;;;;;;;44862:51;44997:17;:::i;:::-;1553:51096;;;;;;18267:159:168;;;;;;;4093:83:85;;;;1553:51096:164;44292:3;1553:51096;44253:13;;;44573:270;1553:51096;;;;;;;;;44419:19;;;1553:51096;;;;;;;-1:-1:-1;;1553:51096:164;;;44573:270;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;2277:3;1553:51096;;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;40371:295;40419:56;40461:13;;1553:51096;;40461:13;;:::i;:::-;1553:51096;;;;;40419:56;:::i;:::-;1553:51096;;;;40606:21;1553:51096;;;40606:21;;:::i;:::-;1553:51096;40588:15;:39;40371:295;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;1860:93:35;-1:-1:-1;;;1912:30:35;;1553:51096:164;1912:30:35;;1553:51096:164;;;;;;;-1:-1:-1;;1553:51096:164;;;;2324:62:52;;:::i;:::-;1553:51096:164;;22843:51;-1:-1:-1;;;;;;;;;;;1553:51096:164;22843:51;1553:51096;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;34518:36:164;1553:51096;;;;34518:36;:::i;:::-;34606:32;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;34654:96;;;;;;1553:51096;;;;;;;;;;;;34654:96;;1553:51096;;;;;;;;34694:4;;34674:10;1553:51096;34654:96;;;:::i;:::-;;;;;;;;;1553:51096;-1:-1:-1;;1553:51096:164;;-1:-1:-1;;;34786:79:164;;34674:10;1553:51096;34786:79;;1553:51096;34694:4;1553:51096;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;34786:79;;;;;;;;;;;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;34981:70;1553:51096;;;;34674:10;;34981:70;;-1:-1:-1;;;;;;;;;;;1553:51096:164;34606:20;13359:23;1553:51096;-1:-1:-1;;;;;1553:51096:164;34924:236;;;;;1553:51096;;-1:-1:-1;;;34924:236:164;;-1:-1:-1;;;;;1553:51096:164;;;;34924:236;;1553:51096;;;;;;;;;;;;;;34924:236;1553:51096;;;34924:236;;;;;;;;;;1553:51096;;;;;;;;34981:70;;;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;34786:79;;;;1553:51096;34786:79;1553:51096;34786:79;;;;;;;:::i;:::-;;;;;1553:51096;;;;;;;;;34654:96;;;;;:::i;:::-;1553:51096;;34654:96;;;;1553:51096;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;:::i;:::-;1965:72:60;;;:::i;:::-;36586:37:164;1553:51096;;;;36586:37;:::i;:::-;-1:-1:-1;;;;;;1553:51096:164;;;;36674:70;1553:51096;;;;36711:10;;36674:70;;36634:136;;;;;1553:51096;;-1:-1:-1;;;36634:136:164;;-1:-1:-1;;;;;1553:51096:164;;;;36634:136;;1553:51096;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;36634:136;1553:51096;-1:-1:-1;36634:136:164;;;;;;;;1553:51096;36634:136;;;36674:70;1553:51096;;;;;;;36634:136;1553:51096;36634:136;;;:::i;:::-;1553:51096;36634:136;;;1553:51096;;;;;;;;;36674:70;;;;1553:51096;;;;;;-1:-1:-1;;1553:51096:164;;;;2324:62:52;;:::i;:::-;1553:51096:164;;23240:52;-1:-1:-1;;;;;;;;;;;1553:51096:164;23240:52;1553:51096;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;19956:42;-1:-1:-1;;;;;;;;;;;1553:51096:164;19956:42;1553:51096;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;2277:3;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;1553:51096:164;;;:::o;:::-;2277:3;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;-1:-1:-1;;1553:51096:164;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:51096:164;;;;:::o;2213:17::-;1553:51096;;;;;;;:::i;:::-;2213:17;1553:51096;;-1:-1:-1;;;1553:51096:164;2213:17;;;:::o;2277:3::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2243:1:168;;;;;;;;;;1553:51096:164;;;;;;;2243:1:168;:::o;:::-;1553:51096:164;;2243:1:168;;;;;;;;:::o;2355:5:164:-;;;;;;;;;;;;;;;;:::o;2435:3::-;;;;;;;;;;;1553:51096;;;;:::i;:::-;2435:3;;;1553:51096;;;2435:3;;;1553:51096;2435:3;;;:::o;:::-;-1:-1:-1;;;;;2435:3:164;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:51096;;;;;;;:::i;:::-;2435:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:51096;;;;;:::i;:::-;2435:3;;;;;;;;3087:24;;;;;;;;;;:::o;1553:51096::-;;;;;;;;;;;;:::o;:::-;2277:3;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;15156:375::-;29051:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29072:15:168;29051:37;;:::i;:::-;15408:22:164;;;1553:51096;15360:22;;;;;;15513:11;;;;1553:51096;15156:375;:::o;15384:3::-;15431:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:51096:164;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;15407:39;15403:90;;1553:51096;;15345:13;;15403:90;15466:12;;;;1553:51096;15466:12;:::o;1553:51096::-;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;21228:583;21361:38;-1:-1:-1;;;;;;;;;;;1553:51096:164;21361:38;1553:51096;;;;;:::i;:::-;21413:37;;;1553:51096;2955:2;1553:51096;21466:62;:::o;21409:396::-;1553:51096;;;;;;;:::i;:::-;21549:37;1553:51096;;3020:1;1553:51096;21609:91;21602:98;:::o;21545:260::-;21738:56;21731:63;:::o;1553:51096::-;-1:-1:-1;;1553:51096:164;;;;;;;:::o;3426:215:52:-;-1:-1:-1;;;;;1553:51096:164;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;1553:51096:164;;;;;;;-1:-1:-1;;;;;1553:51096:164;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;1553:51096:164;;3530:1:52;3555:31;2679:162;-1:-1:-1;;;;;;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;1553:51096:164;;-1:-1:-1;2784:40:52;2730:128:60;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;2791:61:60;;2730:128::o;2791:61::-;2826:15;;;-1:-1:-1;2826:15:60;;-1:-1:-1;2826:15:60;42093:934:164;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;42269:19;;;;1553:51096;42269:38;1553:51096;;;;;42362:19;;;1553:51096;;42400:24;1553:51096;;;;;;;;;:::i;:::-;42362:62;1553:51096;;3543:209:88;1553:51096:164;3543:209:88;1553:51096:164;3543:209:88;1553:51096:164;;3543:209:88;1553:51096:164;1052:614:85;;;;;;;;-1:-1:-1;;;;;1052:614:85;;;;;1691:6:166;1052:614:85;1553:51096:164;1052:614:85;1928:66:166;4093:83:85;;2038:66:166;1553:51096:164;4093:83:85;;;2148:66:166;1553:51096:164;4093:83:85;;;2258:66:166;2250:6;4093:83:85;;;2368:66:166;2360:6;4093:83:85;;;2478:66:166;2470:6;4093:83:85;;;2588:66:166;2580:6;4093:83:85;;;2698:66:166;2690:6;4093:83:85;;;2808:66:166;2800:6;4093:83:85;;;2918:66:166;2910:6;4093:83:85;;;3028:66:166;3020:6;4093:83:85;;;3138:66:166;3130:6;4093:83:85;;;3248:66:166;3240:6;4093:83:85;;;3358:66:166;3350:6;4093:83:85;;;3468:66:166;3460:6;4093:83:85;;;3578:66:166;3570:6;4093:83:85;;;3688:66:166;3680:6;4093:83:85;;;3798:66:166;3790:6;4093:83:85;;;3908:66:166;3900:6;4093:83:85;;;4018:66:166;4010:6;4093:83:85;;;4128:66:166;4120:6;4093:83:85;;;4238:66:166;4230:6;4093:83:85;;;42822:4:164;4576:2:166;2955::164;4477:66:166;;;;;4476:103;4456:6;4093:83:85;;;4632:66:166;4624:6;4093:83:85;;;42699:135:164;4710:150:166;;;;;;1553:51096:164;;;;;;;-1:-1:-1;1553:51096:164;42845:28;;;1553:51096;;;;-1:-1:-1;1553:51096:164;;42902:33;;;:35;1553:51096;;42902:35;:::i;:::-;1553:51096;;;;-1:-1:-1;;;;;1553:51096:164;;;;42953:32;;1553:51096;;42953:32;42996:24;42093:934;:::o;1553:51096::-;;;;;;;;;42093:934;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;42269:19;34549:4;42269:19;;1553:51096;42269:38;1553:51096;;;-1:-1:-1;1553:51096:164;42362:19;;;1553:51096;;42400:24;1553:51096;;-1:-1:-1;1553:51096:164;;;;;;:::i;:::-;42362:62;1553:51096;;3543:209:88;-1:-1:-1;3543:209:88;1553:51096:164;3543:209:88;1553:51096:164;-1:-1:-1;3543:209:88;1553:51096:164;1052:614:85;;;;;;;;-1:-1:-1;;;;;1052:614:85;;;;;1585:4:167;1052:614:85;1553:51096:164;1052:614:85;2081:66:167;4093:83:85;;42761:4:164;1052:614:85;2955:2:164;2227:66:167;2226:105;1553:51096:164;4093:83:85;;;2382:66:167;1553:51096:164;4093:83:85;;;-1:-1:-1;2460:150:167;;;;;;1553:51096:164;;;;;;;-1:-1:-1;1553:51096:164;42845:28;;;1553:51096;;;;-1:-1:-1;1553:51096:164;;42902:33;;;:35;1553:51096;;42902:35;:::i;23252:532:168:-;23377:12;-1:-1:-1;;2277:3:164;;;23252:532:168;;2277:3:164;;;;1553:51096;;23377:12:168;23417:22;;23377:12;;23417:50;1553:51096:164;23417:50:168;;23501:8;;;;;;23477:278;-1:-1:-1;1553:51096:164;;-1:-1:-1;;23252:532:168:o;23482:17::-;23540:12;;23570:11;;;;;-1:-1:-1;23392:1:168;;-1:-1:-1;;;23601:11:168:o;23566:119::-;23637:8;23633:52;;-1:-1:-1;;1553:51096:164;23482:17:168;;23633:52;23665:5;;23417:50;23446:21;23377:12;;23446:21;:::i;:::-;23417:50;;;1553:51096:164;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;43033:846::-;;43161:22;;;43194:1;43161:22;;;;:::i;:::-;:34;;;1553:51096;;43238:22;;;;:::i;:::-;:34;;;43234:177;;43465:22;;;:::i;:::-;1553:51096;;;;;;;:::i;:::-;43555:23;;;;;:::i;:::-;2355:5;;;;1553:51096;2355:5;;;;;49067:2;2355:5;;;;;;;49113:36;;;;;;:::i;:::-;49159:18;1553:51096;49193:13;1553:51096;;49328:28;1553:51096;;;;;;49328:28;;49188:685;49228:3;49208:18;;;;;;1553:51096;;;;;;;;;;;;;;49357:18;;;:::i;:::-;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;49328:53;1553:51096;;;43161:22;49451:25;;-1:-1:-1;;;;;49451:25:164;;;:::i;:::-;1553:51096;49451:30;;:72;;;49228:3;49447:144;;49228:3;-1:-1:-1;;;;;49638:18:164;;;:::i;:::-;1553:51096;;-1:-1:-1;;;49630:76:164;;49067:2;49630:76;;;1553:51096;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;;;:::i;:::-;;;;;;49067:2;1553:51096;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;;49067:2;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49067:2;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;44862:51;1553:51096;;;;;;;;;;;;49067:2;1553:51096;;;;;;;;;;;;;;;;;;;;;;;49630:76;;;;;;;49067:2;49630:76;;-1:-1:-1;;;;;49630:76:164;;;;1553:51096;;49630:76;;;;;;;;1553:51096;49630:76;;;1553:51096;4093:83:85;;49067:2:164;4093:83:85;43194:1:164;4093:83:85;;;;1553:51096:164;49228:3;1553:51096;49193:13;;;49630:76;;;49067:2;49630:76;;;;;;;;;1553:51096;49630:76;;;:::i;:::-;;;1553:51096;;;;;43194:1;49630:76;;;;;-1:-1:-1;49630:76:164;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;49067:2;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;:::i;:::-;;49067:2;1553:51096;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;49067:2;1553:51096;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;43161:22;1553:51096;;;:::i;:::-;;;;;;;;;;43161:22;1553:51096;;;;;;;;;;;;;;;;;;49067:2;1553:51096;;;;;;;;43194:1;1553:51096;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43194:1;1553:51096;;;;;;;;;;;49067:2;1553:51096;;;:::i;:::-;;49067:2;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;;;;;;;49447:144;49551:25;;;;;:::i;:::-;49447:144;;;49451:72;49486:37;;1553:51096;49486:37;;;:::i;:::-;49485:38;49451:72;;49208:18;;;;;;;;;;1083:131:88;43607:16:164;1553:51096;49067:2;43607:16;;1553:51096;;43595:29;49067:2;1553:51096;;;;;43595:29;43638:32;1553:51096;43638:46;43634:127;;49188:685;1553:51096;;17891:64:168;49067:2:164;17891:64:168;;1553:51096:164;;;;;;;;;;;;17891:64:168;;;43161:22:164;17891:64:168;;:::i;:::-;1553:51096:164;17881:75:168;;43033:846:164;:::o;43634:127::-;43705:45;49067:2;1553:51096;;;;;43705:45;43634:127;;43234:177;43380:20;;;43387:13;43380:20;:::o;1553:51096::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;45329:1705::-;45459:24;;;45494:1;45459:24;;;;:::i;:::-;:36;;;1553:51096;;45540:24;;;;:::i;:::-;:36;;;45536:179;;45771:24;;;;:::i;:::-;1553:51096;;;;;;;;;;;;;;;;;;45817:21;;;;;45841;45817;;;:::i;:::-;45841;;;1553:51096;45841:21;;;;:::i;:::-;1553:51096;;;45817:45;1553:51096;;;45920:21;;;:::i;:::-;1553:51096;45945:29;;;;1553:51096;45841:21;1553:51096;;;;45920:54;1553:51096;;46131:46;1553:51096;46155:21;46051:46;46075:21;;;;:::i;:::-;1553:51096;46051:46;;:::i;:::-;46155:21;;:::i;:::-;1553:51096;46131:46;;:::i;:::-;-1:-1:-1;1553:51096:164;;;46299:31;;;1553:51096;46368:32;;;;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;46467:19;;;;1553:51096;;;;45841:21;;1553:51096;46355:144;46436:62;45841:21;46467:19;;1553:51096;46467:19;:::i;:::-;:31;1553:51096;46436:62;;:::i;:::-;46467:19;1553:51096;;;;;;;;;46355:144;;;;;;1553:51096;;;;;46355:144;;;;;;;1553:51096;46355:144;;;45329:1705;1553:51096;;;;;46467:19;1553:51096;-1:-1:-1;;;46589:185:164;;-1:-1:-1;;;;;1553:51096:164;;;46355:144;46589:185;;1553:51096;;;;;;;;45841:21;46734:26;;;1553:51096;46355:144;1553:51096;;;;46589:185;1553:51096;-1:-1:-1;46589:185:164;;;;;;;;1553:51096;46589:185;;;45329:1705;46875:19;;;;;:::i;:::-;46896:21;;;;:::i;:::-;1553:51096;46467:19;1553:51096;;;;;46826:92;;46467:19;46355:144;46826:92;;1553:51096;;;;;;;;;;;;;;;;;;;;45841:21;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;46368:32;1553:51096;;;;;;;45817:21;46355:144;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;45841:21;1553:51096;;;;;;;;;;;46589:185;1553:51096;;;;46467:19;1553:51096;;;;;;;;:::i;:::-;;;;;;;;;;;46826:92;;;;;;;;;1553:51096;46826:92;;;1553:51096;47005:21;;;;:::i;:::-;46467:19;1553:51096;18940:70:168;45841:21:164;18940:70:168;;1553:51096:164;;;46467:19;1553:51096;;;;;;;;;;45817:21;1553:51096;;;18940:70:168;;;;;;;:::i;46826:92:164:-;;;;45841:21;46826:92;;45841:21;46826:92;;;;;;1553:51096;46826:92;;;:::i;:::-;;;1553:51096;;;;;;47005:21;46826:92;;;;;-1:-1:-1;46826:92:164;;1553:51096;;;;;;;46467:19;1553:51096;45494:1;1553:51096;;;;;;;;;:::i;:::-;;;;45841:21;1553:51096;;;45841:21;1553:51096;;;;;;;;;;;;;;;;46589:185;;;;;45841:21;46589:185;;45841:21;46589:185;;;;;;1553:51096;46589:185;;;:::i;:::-;;;1553:51096;;;;;;;46875:19;46589:185;;;;;-1:-1:-1;46589:185:164;;1553:51096;;;;;;46355:144;1553:51096;;46355:144;;;;45841:21;46355:144;45841:21;46355:144;;;;;;;:::i;:::-;;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;47101:1705::-;;47234:27;;;47272:1;47234:27;;;;:::i;:::-;:39;;;1553:51096;;47321:27;;;;:::i;:::-;:39;;;47317:182;;47558:27;;;:::i;:::-;1553:51096;;;;;;;;;;;;;;;;;;47607:22;;;;;;;:::i;:::-;:33;;;1553:51096;;;47774:29;;;1553:51096;;;;47756:15;:47;:15;;:47;:::i;:::-;47755:72;47807:16;;;1553:51096;47755:72;;;:::i;:::-;47846:20;;;;1553:51096;3087:24;47272:1;3087:24;;;;;;;47846:43;;1553:51096;;47980:43;;47948:75;47980:43;;:::i;:::-;47948:75;;:::i;:::-;48075:25;48060:40;48075:25;;;1553:51096;48060:40;;:::i;:::-;47756:15;48041:59;1553:51096;;48219:34;;;:::i;:::-;48271:28;1553:51096;48271:28;;47756:15;;1553:51096;;48271:46;1553:51096;;;48466:34;;;:::i;:::-;48514:31;1553:51096;48514:31;;48559:45;;;;;2435:3;;48559:45;;;;:::i;:::-;48618:22;;;;;;:::i;:::-;1553:51096;;;2435:3;1553:51096;2435:3;;:::i;:::-;1553:51096;;2435:3;;:::i;:::-;50317:752;;;47101:1705;51083:13;;1553:51096;51083:13;;;51102:16;1553:51096;51102:16;;;51200:15;;51078:168;51127:3;1553:51096;;51098:27;;;;;1553:51096;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;47272:1;1553:51096;51083:13;;51098:27;;;;;;;;;;1553:51096;51302:3;1553:51096;;51275:25;;;;;47272:1;;-1:-1:-1;;;;;51342:17:164;1553:51096;51342:17;;:::i;:::-;2277:3;1553:51096;;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;51260:13;;51275:25;;;;;;;;;;;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;51255:163;1553:51096;;;;;;;;;;;;;;;;;;;;48692:47;1553:51096;;;;;;48692:47;1553:51096;;;;;;;;;;47846:20;1553:51096;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;48559:45;1553:51096;;;;47607:22;1553:51096;;;;;;19385:30:168;;2243:1;1553:51096:164;2243:1:168;;19435:32;;2243:1;1553:51096:164;;;19300:257:168;;;1553:51096:164;19300:257:168;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:51096:164;;19300:257:168;;;;;;1553:51096:164;19300:257:168;;;:::i;1553:51096:164:-;;;-1:-1:-1;;;;;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;47272:1;1553:51096;;;;2277:3;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;47272:1;1553:51096;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;50317:752;2243:1:168;;50778:25:164;1553:51096;50778:25;;2243:1:168;;;1145:66:90;;1837:24:89;;:71;;;;50317:752:164;1553:51096;;;;;2243:1:168;1553:51096:164;;2243:1:168;47272::164;1553:51096;;;1745:1673:170;;;;;;;;;;;;;;;;;;;1553:51096:164;1745:1673:170;;;;;;;47774:29:164;50954:52;;1553:51096;;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;-1:-1:-1;;50317:752:164;;1745:1673:170;;1553:51096:164;1745:1673:170;;;;1553:51096:164;;;;;;;;;1837:71:89;1865:43;;;;:::i;:::-;1837:71;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24997:3813:168;;;;;;1553:51096:164;32995:29:168;;;1553:51096:164;;;;33027:22:168;25366:15;33027:22;;:::i;:::-;32995:77;33027:45;33052:16;;;1553:51096:164;33027:45:168;;;:::i;:::-;32995:77;;:::i;:::-;25396:15;;;;;;:82;;24997:3813;25392:676;;;25502:35;;;1553:51096:164;;25587:25:168;;;;:::i;:::-;:39;1553:51096:164;;26162:24:168;25392:676;;26162:24;;:::i;:::-;3270:200:43;-1:-1:-1;;;1553:51096:164;3270:200:43;26227:4:168;3270:200:43;;32995:29:168;3270:200:43;33052:16:168;3270:200:43;;1553:51096:164;3270:200:43;1553:51096:164;32995:29:168;1553:51096:164;;;;;26290:37:168;;;26351:23;;32995:19;26351:23;;1553:51096:164;;;;;;;2435:3;1553:51096;;:::i;:::-;2435:3;;;:::i;:::-;1553:51096;3270:200:43;1553:51096:164;;26482:23:168;1553:51096:164;;26672:240:168;1553:51096:164;27193:272:168;26672:240;;;3270:200:43;26672:240:168;;;;;;;1553:51096:164;32995:19:168;1553:51096:164;;27282:32:168;;1553:51096:164;27193:272:168;;:::i;1553:51096:164:-;;;;;;;;;;;;;;;;;;26286:2495:168;1553:51096:164;;;32995:19:168;27486:37;27482:1299;;26286:2495;;;;;1553:51096:164;24997:3813:168;:::o;27482:1299::-;27559:199;27596:15;27636:25;27596:15;;;;;1553:51096:164;27636:25:168;;1553:51096:164;;-1:-1:-1;;;;;1553:51096:164;;;;;27559:199:168;;:::i;:::-;27773:27;1553:51096:164;27820:13:168;28016:14;1553:51096:164;28016:14:168;;27815:929;27859:3;27835:22;;;;;;5489:8:40;5433:27;2435:3:164;1553:51096;;;;;;;;:::i;2435:3::-;5433:27:40;;:::i;5489:8::-;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;28012:718:168;;27859:3;;32995:19;27859:3;27820:13;1553:51096:164;27820:13:168;;28012:718;-1:-1:-1;;;;;2774:163:36;1553:51096:164;2774:163:36;;;2102:66:164;1553:51096;2774:163:36;;;;3327:69:39;;28375:50:168;;;28453:8;32995:19;28453:8;;;28371:223;3556:68:39;32995:19:168;28620:17;3556:68:39;;;28620:17:168;:::i;:::-;:30;;;;28616:96;;28012:718;;;28616:96;28678:11;;;;;;;32995:19;28678:11;:::o;27835:22::-;;;;;;;;1553:51096:164;28758:12:168;:::o;1553:51096:164:-;;;;;;;;;;;;;;;;;;25392:676:168;25366:15;;;;;;25861:21;;1553:51096:164;;26162:24:168;25919:69;;;25392:676;;;;25919:69;25958:15;;25919:69;;;1553:51096:164;;;;;;;;;25396:82:168;25446:32;25433:45;25446:32;;;1553:51096:164;25433:45:168;;:::i;:::-;25366:15;25415:63;25396:82;;24277:229;1553:51096:164;;:::i;:::-;;;24455:12:168;15371:24:46;15367:103;;1553:51096:164;837:15:50;14371:24:46;14367:103;;1553:51096:164;;;;;:::i;:::-;24425:1:168;1553:51096:164;;;24455:12:168;1553:51096:164;24393:106:168;;;1553:51096:164;;837:15:50;1553:51096:164;;24393:106:168;;1553:51096:164;24277:229:168;:::o;14367:103:46:-;15418:41;;;24425:1:168;14418:41:46;14449:2;14418:41;1553:51096:164;837:15:50;1553:51096:164;;;24425:1:168;14418:41:46;15367:103;15418:41;;;24425:1:168;15418:41:46;15449:2;15418:41;1553:51096:164;24455:12:168;1553:51096:164;;;24425:1:168;15418:41:46;1553:51096:164;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;2277:3;;;1553:51096;;;;;;;;;;;;;;;31844:456:168;-1:-1:-1;;;;;31844:456:168;;1553:51096:164;;;;32153:24:168;;;;:::i;:::-;1553:51096:164;;;;;;32265:5:168;1553:51096:164;;32278:1:168;1553:51096:164;31844:456:168;:::o;1553:51096:164:-;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;863:809:85:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:85;;;-1:-1:-1;;;;;1052:614:85;;;;;;;;;;863:809::o;32485:179:168:-;32637:16;32599:34;32598:59;32485:179;1553:51096:164;32604:29:168;;;1553:51096:164;;;;32599:34:168;;:::i;:::-;32637:16;;1553:51096:164;32598:59:168;;:::i;29301:322::-;29421:50;29455:15;29421:50;;:::i;:::-;29455:15;;;29494:37;;29487:44;:::o;29417:200::-;29569:37;;29562:44;:::o;29760:312::-;;29883:37;29760:312;29883:37;;:::i;:::-;;;;29943;;29936:44;:::o;29879:187::-;30018:37;;30011:44;:::o;7001:1787:83:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:83;;;8025:68;;2933:1:90;2929:5;4026:14:83;3087:24:164;4010:31:83;;;:::i;:::-;1553:51096:164;425:3:83;1553:51096:164;;;4003:1:90;2933;2929:5;;1553:51096:164;425:3:83;4492:84:85;;;4093:83;3087:24:164;4093:83:85;;;4003:1:90;1553:51096:164;;3087:24;4492:84:85;;;3087:24:164;4093:83:85;;;;;3087:24:164;4093:83:85;;;1581:66:83;3087:24:164;4093:83:85;;;-1:-1:-1;;;3087:24:164;4093:83:85;;;531:131:88;;3087:24:164;4093:83:85;;;;;;4003:1:90;3087:24:164;4492:84:85;;2933:1:90;4492:84:85;;3087:24:164;531:131:88;;5696:10:83;;;4093:83:85;;4492:84;3087:24:164;1145:66:90;;531:131:88;;6084:3:83;1553:51096:164;-1:-1:-1;;;;;2955:2:164;;;6084:3:83;2955:2:164;;6062:44:83;1145:66:90;;;1860::83;1553:51096:164;1860:66:83;;1553:51096:164;6037:2:83;1553:51096:164;6140:32:83;6133:57;8567:14;;8563:57;;1145:66:90;3386:2;6084:3:83;1145:66:90;1553:51096:164;1145:66:90;648:2:83;1145:66:90;;;6396:43:89;;1145:66:90;;1553:51096:164;4093:83:85;;1553:51096:164;4093:83:85;;;;;6037:2:83;4093:83:85;;;1145:66:90;;6954:42:89;;-1:-1:-1;;1553:51096:164;1530:4:87;4093:83:85;;;;;;2933:1:90;1640:140:87;;;1553:51096:164;1640:140:87;3543:209:88;1553:51096:164;3543:209:88;648:2:83;3543:209:88;1553:51096:164;;;;;6037:2:83;1553:51096:164;3543:209:88;4476:141:90;9285:100:89;7001:1787:83;:::o;8025:68::-;8070:12;;;;;;1553:51096:164;8070:12:83;:::o;3821:191:61:-;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6463:31:61;;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6801:34:61;;1553:51096:164;;3912:92:61;1553:51096:164;3912:92:61;;1553:51096:164;1977:95:61;1553:51096:164;;;1977:95:61;;1553:51096:164;1977:95:61;;;1553:51096:164;3975:13:61;1977:95;;;1553:51096:164;3998:4:61;1977:95;;;1553:51096:164;1977:95:61;3912:92;;;;;;:::i;1553:51096:164:-;-1:-1:-1;;;;;;;;;;;;;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;-1:-1:-1;1553:51096:164;;7082:141:18;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;33419:467:168;1553:51096:164;;:::i;:::-;-1:-1:-1;33723:51:168;;;1553:51096:164;33841:27:168;;;1553:51096:164;;;;;;;;33794:15:168;;-1:-1:-1;;;;;1553:51096:164;;;;:::i;:::-;;;;:::i;:::-;;;33582:297:168;;;2277:3:164;33794:15:168;1553:51096:164;:::i;:::-;;33582:297:168;;1553:51096:164;33582:297:168;;;1553:51096:164;33419:467:168;:::o;7129:1551:40:-;;;8209:66;8196:79;;8192:164;;1553:51096:164;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;;;;;8467:24:40;;;;;;;;;-1:-1:-1;8467:24:40;-1:-1:-1;;;;;1553:51096:164;;8505:20:40;8501:113;;8624:49;-1:-1:-1;8624:49:40;-1:-1:-1;7129:1551:40;:::o;8501:113::-;8541:62;-1:-1:-1;8541:62:40;8467:24;8541:62;-1:-1:-1;8541:62:40;:::o;8192:164::-;8291:54;;;8307:1;8291:54;8311:30;8291:54;;:::o;11617:532::-;1553:51096:164;;;;;;11703:29:40;;;11748:7;;:::o;11699:444::-;1553:51096:164;11799:38:40;;1553:51096:164;;11860:23:40;;;11712:20;11860:23;1553:51096:164;11712:20:40;11860:23;11795:348;11913:35;11904:44;;11913:35;;11971:46;;;;11712:20;11971:46;1553:51096:164;;;11712:20:40;11971:46;11900:243;12047:30;12038:39;12034:109;;11900:243;11617:532::o;12034:109::-;12100:32;;;11712:20;12100:32;1553:51096:164;;;11712:20:40;12100:32;30479:863:168;;30725:54;30647;;;1553:51096:164;30725:54:168;;1553:51096:164;30853:10:168;;;1553:51096:164;;30924:9:168;;;;30956;;;;;30988;;;31089:14;;;;;30479:863;1553:51096:164;;;31305:30:168;;;31298:37;;30479:863;:::o;31305:30::-;31320:14;;30479:863;-1:-1:-1;30479:863:168:o;1553:51096:164:-;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;31089:14:168;;;;;1553:51096:164;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;2419:778:40;1553:51096:164;;;2419:778:40;2609:2;2589:22;;2609:2;;3041:25;2825:196;;;;;;;;;;;;;;;-1:-1:-1;2825:196:40;3041:25;;:::i;:::-;3034:32;;;;;:::o;2585:606::-;3097:83;;3113:1;3097:83;3117:35;3097:83;;:::o;1767:250:90:-;-1:-1:-1;;912:66:90;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:90;;1948:15;:62;1767:250;:::o;4691:549:25:-;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;1553:51096:164;;;;5045:24:25;1553:51096:164;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;1553:51096:164;;;-1:-1:-1;1553:51096:164;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"1929":[{"start":10829,"length":32},{"start":10977,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","bumpProtocolVersion(uint8)":"5734c0e1","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","protocolVersion()":"2ae9c600","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","subProtocolVersion(uint8)":"ed018262","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.35+commit.47b9dedd\"},\"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\":\"uint256\",\"name\":\"newProtocolVersion\",\"type\":\"uint256\"}],\"name\":\"ProtocolVersionChanged\",\"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\":\"enum Gear.VersionType\",\"name\":\"_versionType\",\"type\":\"uint8\"}],\"name\":\"bumpProtocolVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"protocolVersion\",\"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\":\"uint256\",\"name\":\"protocolVersion\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Gear.VersionType\",\"name\":\"versionType\",\"type\":\"uint8\"}],\"name\":\"subProtocolVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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 is invalid.\"}],\"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 a 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).\"}},\"ProtocolVersionChanged(uint256)\":{\"details\":\"This is an *informational* event, signaling that the protocol version has been changed.\",\"params\":{\"newProtocolVersion\":\"The new version of the protocol.\"}},\"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.\"}},\"bumpProtocolVersion(uint8)\":{\"details\":\"Bumps the version of the protocol, used by nodes.\",\"params\":{\"_versionType\":\"The type of version bump (major, minor, patch). Emits `ProtocolVersionChanged` event.\"}},\"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.\"}},\"protocolVersion()\":{\"details\":\"Returns the current protocol version.\",\"returns\":{\"_0\":\"protocolVersion The current protocol version.\"}},\"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.\"}},\"subProtocolVersion(uint8)\":{\"details\":\"Returns the sub-protocol version for the given version type.\",\"params\":{\"versionType\":\"The type of version (major, minor, patch).\"},\"returns\":{\"_0\":\"subProtocolVersion The sub-protocol version.\"}},\"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.\"},\"ProtocolVersionChanged(uint256)\":{\"notice\":\"Emitted when the protocol version is changed.\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e\",\"dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95\",\"dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0x1149f6c3445a564f5b9cd27c2dc85c6bcaed254c67cb57a416bc7ca1f667ad1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a72ecd1a82f8ece4d83280a4920a6269e83bec971a27d0ce2e3a21d2ae08450\",\"dweb:/ipfs/QmSn68D8stm6b7m4nZndhTqincMQdoTqNrRXmAReV9Xb2r\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd\",\"dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59\",\"dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x842e473d73e594ced961a26890d62c8b134be06bd8926ebec648d22a947bc74b\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://077789711f31e9acc89a02b7bfbe304ed44dce4b64d4f5f88323a4cc206e8dfe\",\"dweb:/ipfs/QmPGeWPCYLKxKf4nt83nT3ckRgi6D2T9PWULhoxqGZfkSA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2\",\"dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k\"]},\"src/Router.sol\":{\"keccak256\":\"0xfd04656cef41922fe8291e80928011790b858bb42c60c0442d674f358623cf5e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://228067ed52e0f27d9012e51bb4775bff7c9c2b93987e16bfe685080c32772f35\",\"dweb:/ipfs/QmNe9QaNCnifk25AGgKquUY4N2cs5Cq4Huh81swbZSeqUp\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0xb8ee3c0b9ca571d7a0ab00afd541928a173ceaa1e6c8981bca79b4980ae861cc\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8ff68e6d1d0ac4626bf0e5c4b3e40baa81c7901890a9bf4bb96748a331666f32\",\"dweb:/ipfs/QmQFXai5GRpyPrkQ7cu7zaYuezj8oF7TVD4W66uRxaCex6\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0xadbc9b06486d060323f636b3a72f47495cc992bf7483837bdf6710ca954a7354\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3e34e91e60cf1020fc03b8ab62b6f946b1d958b0308d900c4fe416c447b1260f\",\"dweb:/ipfs/QmbKUa3P3pqnDe7bTikZu1veQFCVXZKkCRA4YZGhXurP8h\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd\",\"dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0x5a9e53b62f5198b3e2c07c523c82de277725b392df34dd0a8ed2ea8f77bd7d5f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://72fb6f6f7141cecefefe6babfb437cfa7b698be6a5df3cba2846d052eb5e94f7\",\"dweb:/ipfs/QmUMXq9okbsTenwnRG2RD4PrqXJWDDV9KvTLpUViqyLS37\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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":"uint256","name":"newProtocolVersion","type":"uint256","indexed":false}],"type":"event","name":"ProtocolVersionChanged","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":"enum Gear.VersionType","name":"_versionType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"bumpProtocolVersion"},{"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":"protocolVersion","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"},{"internalType":"uint256","name":"protocolVersion","type":"uint256"}]}]},{"inputs":[{"internalType":"enum Gear.VersionType","name":"versionType","type":"uint8"}],"stateMutability":"view","type":"function","name":"subProtocolVersion","outputs":[{"internalType":"uint256","name":"","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."}},"bumpProtocolVersion(uint8)":{"details":"Bumps the version of the protocol, used by nodes.","params":{"_versionType":"The type of version bump (major, minor, patch). Emits `ProtocolVersionChanged` event."}},"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."}},"protocolVersion()":{"details":"Returns the current protocol version.","returns":{"_0":"protocolVersion The current protocol version."}},"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."}},"subProtocolVersion(uint8)":{"details":"Returns the sub-protocol version for the given version type.","params":{"versionType":"The type of version (major, minor, patch)."},"returns":{"_0":"subProtocolVersion The sub-protocol version."}},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol":{"keccak256":"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402","urls":["bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e","dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol":{"keccak256":"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad","urls":["bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95","dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/PausableUpgradeable.sol":{"keccak256":"0x1149f6c3445a564f5b9cd27c2dc85c6bcaed254c67cb57a416bc7ca1f667ad1f","urls":["bzz-raw://8a72ecd1a82f8ece4d83280a4920a6269e83bec971a27d0ce2e3a21d2ae08450","dweb:/ipfs/QmSn68D8stm6b7m4nZndhTqincMQdoTqNrRXmAReV9Xb2r"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d","urls":["bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd","dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c","urls":["bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59","dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0x842e473d73e594ced961a26890d62c8b134be06bd8926ebec648d22a947bc74b","urls":["bzz-raw://077789711f31e9acc89a02b7bfbe304ed44dce4b64d4f5f88323a4cc206e8dfe","dweb:/ipfs/QmPGeWPCYLKxKf4nt83nT3ckRgi6D2T9PWULhoxqGZfkSA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb","urls":["bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2","dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Router.sol":{"keccak256":"0xfd04656cef41922fe8291e80928011790b858bb42c60c0442d674f358623cf5e","urls":["bzz-raw://228067ed52e0f27d9012e51bb4775bff7c9c2b93987e16bfe685080c32772f35","dweb:/ipfs/QmNe9QaNCnifk25AGgKquUY4N2cs5Cq4Huh81swbZSeqUp"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Clones.sol":{"keccak256":"0xb8ee3c0b9ca571d7a0ab00afd541928a173ceaa1e6c8981bca79b4980ae861cc","urls":["bzz-raw://8ff68e6d1d0ac4626bf0e5c4b3e40baa81c7901890a9bf4bb96748a331666f32","dweb:/ipfs/QmQFXai5GRpyPrkQ7cu7zaYuezj8oF7TVD4W66uRxaCex6"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/ClonesSmall.sol":{"keccak256":"0xadbc9b06486d060323f636b3a72f47495cc992bf7483837bdf6710ca954a7354","urls":["bzz-raw://3e34e91e60cf1020fc03b8ab62b6f946b1d958b0308d900c4fe416c447b1260f","dweb:/ipfs/QmbKUa3P3pqnDe7bTikZu1veQFCVXZKkCRA4YZGhXurP8h"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x0693a6c1c798af7ff718b041bc7b19380517fd9907f6ac99f143dc817069a9a0","urls":["bzz-raw://6280cad3a551409f0cd503ba883e5490c90c3787b6a4811c4bd55880895032cd","dweb:/ipfs/QmUmgtXKDwQjYcNMSwNbBwf3gQqP8sxG7V9hjAXz8np86f"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/SSTORE2.sol":{"keccak256":"0x5a9e53b62f5198b3e2c07c523c82de277725b392df34dd0a8ed2ea8f77bd7d5f","urls":["bzz-raw://72fb6f6f7141cecefefe6babfb437cfa7b698be6a5df3cba2846d052eb5e94f7","dweb:/ipfs/QmUMXq9okbsTenwnRG2RD4PrqXJWDDV9KvTLpUViqyLS37"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":85379,"exportedSymbols":{"Clones":[85774],"ClonesSmall":[85858],"ECDSA":[9016],"EIP712Upgradeable":[20974],"FROST":[62425],"Gear":[87132],"Hashes":[62943],"IMiddleware":[76902],"IMirror":[77166],"IRouter":[77791],"IWrappedVara":[77807],"Memory":[62717],"NoncesUpgradeable":[20577],"OwnableUpgradeable":[19465],"PausableUpgradeable":[20737],"ReentrancyGuardTransient":[6594],"Router":[85378],"SSTORE2":[87588],"SlotDerivation":[6724],"StorageSlot":[6848],"UUPSUpgradeable":[2079]},"nodeType":"SourceUnit","src":"114:52536:164","nodes":[{"id":82224,"nodeType":"PragmaDirective","src":"114:24:164","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":82226,"nodeType":"ImportDirective","src":"140:101:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":82225,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82228,"nodeType":"ImportDirective","src":"242:98:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":20578,"symbolAliases":[{"foreign":{"id":82227,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20577,"src":"250:17:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82230,"nodeType":"ImportDirective","src":"341:102:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":20738,"symbolAliases":[{"foreign":{"id":82229,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20737,"src":"349:19:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82232,"nodeType":"ImportDirective","src":"444:111:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":20975,"symbolAliases":[{"foreign":{"id":82231,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20974,"src":"452:17:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82234,"nodeType":"ImportDirective","src":"556:88:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":82233,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"564:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82236,"nodeType":"ImportDirective","src":"645:100:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":6595,"symbolAliases":[{"foreign":{"id":82235,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"653:24:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82238,"nodeType":"ImportDirective","src":"746:80:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":82237,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"754:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82240,"nodeType":"ImportDirective","src":"827:74:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":82239,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"835:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82242,"nodeType":"ImportDirective","src":"902:75:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":9017,"symbolAliases":[{"foreign":{"id":82241,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"910:5:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82244,"nodeType":"ImportDirective","src":"978:52:164","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":62426,"symbolAliases":[{"foreign":{"id":82243,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62425,"src":"986:5:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82246,"nodeType":"ImportDirective","src":"1031:60:164","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":62718,"symbolAliases":[{"foreign":{"id":82245,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"1039:6:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82248,"nodeType":"ImportDirective","src":"1092:73:164","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":62944,"symbolAliases":[{"foreign":{"id":82247,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"1100:6:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82250,"nodeType":"ImportDirective","src":"1166:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":76903,"symbolAliases":[{"foreign":{"id":82249,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"1174:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82252,"nodeType":"ImportDirective","src":"1215:40:164","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":77167,"symbolAliases":[{"foreign":{"id":82251,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"1223:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82254,"nodeType":"ImportDirective","src":"1256:40:164","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":77792,"symbolAliases":[{"foreign":{"id":82253,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77791,"src":"1264:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82256,"nodeType":"ImportDirective","src":"1297:50:164","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":77808,"symbolAliases":[{"foreign":{"id":82255,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"1305:12:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82258,"nodeType":"ImportDirective","src":"1348:48:164","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":85775,"symbolAliases":[{"foreign":{"id":82257,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85774,"src":"1356:6:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82260,"nodeType":"ImportDirective","src":"1397:58:164","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":85859,"symbolAliases":[{"foreign":{"id":82259,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85858,"src":"1405:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82262,"nodeType":"ImportDirective","src":"1456:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":87133,"symbolAliases":[{"foreign":{"id":82261,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"1464:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82264,"nodeType":"ImportDirective","src":"1501:50:164","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":85379,"sourceUnit":87589,"symbolAliases":[{"foreign":{"id":82263,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87588,"src":"1509:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85378,"nodeType":"ContractDefinition","src":"1553:51096:164","nodes":[{"id":82281,"nodeType":"VariableDeclaration","src":"1838:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1863:12:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1838:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":82280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:66:164","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":82284,"nodeType":"VariableDeclaration","src":"2057:111:164","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2082:17:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2057:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":82283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2102:66:164","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":82287,"nodeType":"VariableDeclaration","src":"2175:55:164","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2199:11:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82285,"name":"string","nodeType":"ElementaryTypeName","src":"2175:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":82286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2213:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_ded8ea4cbd8dfac3d256d1ee2019397a32c8630b040ad63275830e967889ecd8","typeString":"literal_string \"Vara.ETH Router\""},"value":"Vara.ETH Router"},"visibility":"private"},{"id":82290,"nodeType":"VariableDeclaration","src":"2236:44:164","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2260:14:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82288,"name":"string","nodeType":"ElementaryTypeName","src":"2236:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":82289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2277:3:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"private"},{"id":82293,"nodeType":"VariableDeclaration","src":"2287:73:164","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2312:40:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82291,"name":"uint256","nodeType":"ElementaryTypeName","src":"2287:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":82292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2355:5:164","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"id":82296,"nodeType":"VariableDeclaration","src":"2366:72:164","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2391:41:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82294,"name":"uint256","nodeType":"ElementaryTypeName","src":"2366:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":82295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2435:3:164","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"visibility":"private"},{"id":82299,"nodeType":"VariableDeclaration","src":"2581:144:164","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2606:42:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2581:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":82298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2659:66:164","typeDescriptions":{"typeIdentifier":"t_rational_25041847662038966976180655381136102362768580769727479521951050179079337377943_by_1","typeString":"int_const 2504...(69 digits omitted)...7943"},"value":"0x375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b8097"},"visibility":"private"},{"id":82302,"nodeType":"VariableDeclaration","src":"2732:49:164","nodes":[],"constant":true,"mutability":"constant","name":"MAJOR_PROTOCOL_VERSION","nameLocation":"2755:22:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82300,"name":"uint8","nodeType":"ElementaryTypeName","src":"2732:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":82301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2780:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":82305,"nodeType":"VariableDeclaration","src":"2787:49:164","nodes":[],"constant":true,"mutability":"constant","name":"MINOR_PROTOCOL_VERSION","nameLocation":"2810:22:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82303,"name":"uint8","nodeType":"ElementaryTypeName","src":"2787:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":82304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2835:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":82308,"nodeType":"VariableDeclaration","src":"2842:49:164","nodes":[],"constant":true,"mutability":"constant","name":"PATCH_PROTOCOL_VERSION","nameLocation":"2865:22:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82306,"name":"uint8","nodeType":"ElementaryTypeName","src":"2842:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":82307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2890:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":82311,"nodeType":"VariableDeclaration","src":"2898:59:164","nodes":[],"constant":true,"mutability":"constant","name":"MAJOR_PROTOCOL_VERSION_OFFSET","nameLocation":"2923:29:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82309,"name":"uint256","nodeType":"ElementaryTypeName","src":"2898:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136","id":82310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2955:2:164","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"visibility":"private"},{"id":82314,"nodeType":"VariableDeclaration","src":"2963:58:164","nodes":[],"constant":true,"mutability":"constant","name":"MINOR_PROTOCOL_VERSION_OFFSET","nameLocation":"2988:29:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82312,"name":"uint256","nodeType":"ElementaryTypeName","src":"2963:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"38","id":82313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3020:1:164","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"visibility":"private"},{"id":82324,"nodeType":"VariableDeclaration","src":"3028:83:164","nodes":[],"constant":true,"mutability":"constant","name":"PROTOCOL_VERSION_COMPONENT_MASK","nameLocation":"3053:31:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82315,"name":"uint256","nodeType":"ElementaryTypeName","src":"3028:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"expression":{"arguments":[{"id":82320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3100:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":82319,"name":"uint8","nodeType":"ElementaryTypeName","src":"3100:5:164","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":82318,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3095:4:164","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":82321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3095:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":82322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3107:3:164","memberName":"max","nodeType":"MemberAccess","src":"3095:15:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":82317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3087:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":82316,"name":"uint256","nodeType":"ElementaryTypeName","src":"3087:7:164","typeDescriptions":{}}},"id":82323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":82346,"nodeType":"VariableDeclaration","src":"3118:221:164","nodes":[],"constant":true,"mutability":"constant","name":"PROTOCOL_VERSION","nameLocation":"3143:16:164","scope":85378,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82325,"name":"uint256","nodeType":"ElementaryTypeName","src":"3118:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"id":82328,"name":"MAJOR_PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82302,"src":"3171:22:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":82327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3163:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":82326,"name":"uint256","nodeType":"ElementaryTypeName","src":"3163:7:164","typeDescriptions":{}}},"id":82329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3163:31:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":82330,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82311,"src":"3198:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3163:64:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":82332,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3162:66:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"id":82335,"name":"MINOR_PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82305,"src":"3248:22:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":82334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3240:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":82333,"name":"uint256","nodeType":"ElementaryTypeName","src":"3240:7:164","typeDescriptions":{}}},"id":82336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3240:31:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":82337,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82314,"src":"3275:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3240:64:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":82339,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3239:66:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3162:143:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"arguments":[{"id":82343,"name":"PATCH_PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82308,"src":"3316:22:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":82342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3308:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":82341,"name":"uint256","nodeType":"ElementaryTypeName","src":"3308:7:164","typeDescriptions":{}}},"id":82344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3308:31:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3162:177:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":82354,"nodeType":"FunctionDefinition","src":"3414:53:164","nodes":[],"body":{"id":82353,"nodeType":"Block","src":"3428:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82350,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"3438:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82352,"nodeType":"ExpressionStatement","src":"3438:22:164"}]},"documentation":{"id":82347,"nodeType":"StructuredDocumentation","src":"3346:63:164","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82348,"nodeType":"ParameterList","parameters":[],"src":"3425:2:164"},"returnParameters":{"id":82349,"nodeType":"ParameterList","parameters":[],"src":"3428:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82564,"nodeType":"FunctionDefinition","src":"4651:2542:164","nodes":[],"body":{"id":82563,"nodeType":"Block","src":"5066:2127:164","nodes":[],"statements":[{"expression":{"arguments":[{"id":82383,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82357,"src":"5091:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82382,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"5076:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5076:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82385,"nodeType":"ExpressionStatement","src":"5076:22:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82386,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20641,"src":"5108:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5108:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82388,"nodeType":"ExpressionStatement","src":"5108:17:164"},{"expression":{"arguments":[{"id":82390,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82287,"src":"5149:11:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82391,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"5162:14:164","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":82389,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20792,"src":"5135:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5135:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82393,"nodeType":"ExpressionStatement","src":"5135:42:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82394,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20503,"src":"5187:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5187:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82396,"nodeType":"ExpressionStatement","src":"5187:15:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82398,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5381:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5387:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"5381:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5399:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5381:19:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82402,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"5402:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5402:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82397,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5373:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:48:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82405,"nodeType":"ExpressionStatement","src":"5373:48:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82407,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82367,"src":"5439:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5459:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5439:21:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82410,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"5462:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5462:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82406,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5431:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5431:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82413,"nodeType":"ExpressionStatement","src":"5431:57:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82415,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82365,"src":"5506:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":82416,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82367,"src":"5521:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5506:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82418,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77329,"src":"5540:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5540:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5498:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5498:64:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82421,"nodeType":"ExpressionStatement","src":"5498:64:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82423,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82369,"src":"5731:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82424,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82365,"src":"5751:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":82425,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82367,"src":"5766:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5751:32:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":82427,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5750:34:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":82428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5787:2:164","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5750:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5731:58:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82431,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77334,"src":"5791:21:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5791:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5723:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5723:92:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82434,"nodeType":"ExpressionStatement","src":"5723:92:164"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":82436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:25:164","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":82435,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85318,"src":"5826:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5826:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82438,"nodeType":"ExpressionStatement","src":"5826:42:164"},{"assignments":[82441],"declarations":[{"constant":false,"id":82441,"mutability":"mutable","name":"router","nameLocation":"5894:6:164","nodeType":"VariableDeclaration","scope":82563,"src":"5878:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82440,"nodeType":"UserDefinedTypeName","pathNode":{"id":82439,"name":"Storage","nameLocations":["5878:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"5878:7:164"},"referencedDeclaration":77264,"src":"5878:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82444,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82442,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"5903:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5903:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5878:34:164"},{"expression":{"id":82451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82445,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"5923:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5930:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"5923:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82448,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"5945:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5950:10:164","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":86584,"src":"5945:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$86105_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":82450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5945:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5923:39:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82452,"nodeType":"ExpressionStatement","src":"5923:39:164"},{"expression":{"id":82462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82453,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"5972:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5979:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"5972:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82458,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82359,"src":"6012:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82459,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82361,"src":"6021:12:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82460,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82363,"src":"6035:11:164","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":82456,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"5995:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:11:164","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":85976,"src":"5995:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$85976_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":82461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5995:52:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5972:75:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82463,"nodeType":"ExpressionStatement","src":"5972:75:164"},{"expression":{"id":82471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82464,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"6057:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6064:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"6057:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6083:18:164","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86206,"src":"6057:44:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82469,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"6104:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6109:30:164","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":85897,"src":"6104:35:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6057:82:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82472,"nodeType":"ExpressionStatement","src":"6057:82:164"},{"expression":{"id":82480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82473,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"6149:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6156:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"6149:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6175:20:164","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"6149:46:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82478,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"6198:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6203:32:164","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":85901,"src":"6198:37:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6149:86:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82481,"nodeType":"ExpressionStatement","src":"6149:86:164"},{"expression":{"id":82488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82482,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"6245:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6252:15:164","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":77255,"src":"6245:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82485,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"6270:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6275:26:164","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":86561,"src":"6270:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$86097_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":82487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6270:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"6245:58:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":82489,"nodeType":"ExpressionStatement","src":"6245:58:164"},{"expression":{"id":82499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82490,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"6313:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6320:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"6313:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82495,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82365,"src":"6347:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82496,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82367,"src":"6361:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82497,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82369,"src":"6380:16:164","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":82493,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"6332:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6337:9:164","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":86203,"src":"6332:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$86203_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":82498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6332:65:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"6313:84:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82500,"nodeType":"ExpressionStatement","src":"6313:84:164"},{"expression":{"id":82511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82501,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"6407:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6414:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"6407:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6427:13:164","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":86147,"src":"6407:33:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":82508,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82377,"src":"6450:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6462:6:164","memberName":"length","nodeType":"MemberAccess","src":"6450:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6443:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":82506,"name":"uint16","nodeType":"ElementaryTypeName","src":"6443:6:164","typeDescriptions":{}}},"id":82510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6443:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6407:62:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":82512,"nodeType":"ExpressionStatement","src":"6407:62:164"},{"assignments":[82514],"declarations":[{"constant":false,"id":82514,"mutability":"mutable","name":"decimalsFactor","nameLocation":"6488:14:164","nodeType":"VariableDeclaration","scope":82563,"src":"6480:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82513,"name":"uint256","nodeType":"ElementaryTypeName","src":"6480:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82522,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6505:2:164","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":82517,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82361,"src":"6524:12:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82516,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"6511:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77807_$","typeString":"type(contract IWrappedVara)"}},"id":82518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6511:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":82519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6538:8:164","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":2697,"src":"6511:35:164","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":82520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6511:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6505:43:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6480:68:164"},{"expression":{"id":82531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82523,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"6558:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6565:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"6558:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6578:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"6558:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82528,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82293,"src":"6609:40:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82529,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82514,"src":"6652:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6609:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6558:108:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82532,"nodeType":"ExpressionStatement","src":"6558:108:164"},{"expression":{"id":82541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82533,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"6676:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6683:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"6676:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6696:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86153,"src":"6676:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82538,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82296,"src":"6728:41:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82539,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82514,"src":"6772:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6728:58:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6676:110:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82542,"nodeType":"ExpressionStatement","src":"6676:110:164"},{"expression":{"arguments":[{"expression":{"expression":{"id":82544,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"6868:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6875:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"6868:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6894:11:164","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86211,"src":"6868:37:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"}},{"hexValue":"74727565","id":82547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6919:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":82548,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82372,"src":"6937:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":82549,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82374,"src":"6971:34:164","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":82550,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82377,"src":"7019:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":82551,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7044:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7050:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"7044:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$85953_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_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":82543,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85265,"src":"6838:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$85953_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$85932_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":82553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6838:231:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82554,"nodeType":"ExpressionStatement","src":"6838:231:164"},{"expression":{"id":82561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82555,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"7132:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7139:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"7132:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7152:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86156,"src":"7132:35:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82560,"name":"PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82346,"src":"7170:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7132:54:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82562,"nodeType":"ExpressionStatement","src":"7132:54:164"}]},"documentation":{"id":82355,"nodeType":"StructuredDocumentation","src":"3473:1173:164","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":82380,"kind":"modifierInvocation","modifierName":{"id":82379,"name":"initializer","nameLocations":["5054:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"5054:11:164"},"nodeType":"ModifierInvocation","src":"5054:11:164"}],"name":"initialize","nameLocation":"4660:10:164","parameters":{"id":82378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82357,"mutability":"mutable","name":"_owner","nameLocation":"4688:6:164","nodeType":"VariableDeclaration","scope":82564,"src":"4680:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82356,"name":"address","nodeType":"ElementaryTypeName","src":"4680:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82359,"mutability":"mutable","name":"_mirror","nameLocation":"4712:7:164","nodeType":"VariableDeclaration","scope":82564,"src":"4704:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82358,"name":"address","nodeType":"ElementaryTypeName","src":"4704:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82361,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4737:12:164","nodeType":"VariableDeclaration","scope":82564,"src":"4729:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82360,"name":"address","nodeType":"ElementaryTypeName","src":"4729:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82363,"mutability":"mutable","name":"_middleware","nameLocation":"4767:11:164","nodeType":"VariableDeclaration","scope":82564,"src":"4759:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82362,"name":"address","nodeType":"ElementaryTypeName","src":"4759:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82365,"mutability":"mutable","name":"_eraDuration","nameLocation":"4796:12:164","nodeType":"VariableDeclaration","scope":82564,"src":"4788:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82364,"name":"uint256","nodeType":"ElementaryTypeName","src":"4788:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82367,"mutability":"mutable","name":"_electionDuration","nameLocation":"4826:17:164","nodeType":"VariableDeclaration","scope":82564,"src":"4818:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82366,"name":"uint256","nodeType":"ElementaryTypeName","src":"4818:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82369,"mutability":"mutable","name":"_validationDelay","nameLocation":"4861:16:164","nodeType":"VariableDeclaration","scope":82564,"src":"4853:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82368,"name":"uint256","nodeType":"ElementaryTypeName","src":"4853:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82372,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4921:20:164","nodeType":"VariableDeclaration","scope":82564,"src":"4887:54:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82371,"nodeType":"UserDefinedTypeName","pathNode":{"id":82370,"name":"Gear.AggregatedPublicKey","nameLocations":["4887:4:164","4892:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":85932,"src":"4887:24:164"},"referencedDeclaration":85932,"src":"4887:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82374,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4966:34:164","nodeType":"VariableDeclaration","scope":82564,"src":"4951:49:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":82373,"name":"bytes","nodeType":"ElementaryTypeName","src":"4951:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82377,"mutability":"mutable","name":"_validators","nameLocation":"5029:11:164","nodeType":"VariableDeclaration","scope":82564,"src":"5010:30:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82375,"name":"address","nodeType":"ElementaryTypeName","src":"5010:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82376,"nodeType":"ArrayTypeName","src":"5010:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4670:376:164"},"returnParameters":{"id":82381,"nodeType":"ParameterList","parameters":[],"src":"5066:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82667,"nodeType":"FunctionDefinition","src":"7513:3088:164","nodes":[],"body":{"id":82666,"nodeType":"Block","src":"7571:3030:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82574,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"9844:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":82575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9844:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82573,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"9829:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9829:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82577,"nodeType":"ExpressionStatement","src":"9829:23:164"},{"expression":{"arguments":[{"id":82579,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82287,"src":"9876:11:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82580,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"9889:14:164","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":82578,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20792,"src":"9862:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82582,"nodeType":"ExpressionStatement","src":"9862:42:164"},{"assignments":[82585],"declarations":[{"constant":false,"id":82585,"mutability":"mutable","name":"router","nameLocation":"9931:6:164","nodeType":"VariableDeclaration","scope":82666,"src":"9915:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82584,"nodeType":"UserDefinedTypeName","pathNode":{"id":82583,"name":"Storage","nameLocations":["9915:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"9915:7:164"},"referencedDeclaration":77264,"src":"9915:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82588,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82586,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"9940:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9940:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9915:34:164"},{"expression":{"id":82595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82589,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82585,"src":"9959:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9966:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"9959:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82592,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"9981:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9986:10:164","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":86584,"src":"9981:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$86105_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":82594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9981:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9959:39:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82596,"nodeType":"ExpressionStatement","src":"9959:39:164"},{"expression":{"id":82608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82597,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82585,"src":"10008:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10015:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77243,"src":"10008:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":82604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10077:1:164","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":82603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10069:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82602,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10069:7:164","typeDescriptions":{}}},"id":82605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10069:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":82606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10092:1:164","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":82600,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"10038:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10043:18:164","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":86091,"src":"10038:23:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$86091_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":82607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10063:4:164","10081:9:164"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"10038:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"10008:87:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82609,"nodeType":"ExpressionStatement","src":"10008:87:164"},{"expression":{"id":82624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82610,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82585,"src":"10105:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10112:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"10105:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10125:13:164","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":86147,"src":"10105:33:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":82619,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82585,"src":"10174:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82617,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"10148:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10153:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86851,"src":"10148:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10148:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10182:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85949,"src":"10148:38:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10187:6:164","memberName":"length","nodeType":"MemberAccess","src":"10148:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10141:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":82615,"name":"uint16","nodeType":"ElementaryTypeName","src":"10141:6:164","typeDescriptions":{}}},"id":82623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10141:53:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10105:89:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":82625,"nodeType":"ExpressionStatement","src":"10105:89:164"},{"assignments":[82627],"declarations":[{"constant":false,"id":82627,"mutability":"mutable","name":"decimalsFactor","nameLocation":"10212:14:164","nodeType":"VariableDeclaration","scope":82666,"src":"10204:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82626,"name":"uint256","nodeType":"ElementaryTypeName","src":"10204:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82637,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10229:2:164","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":82630,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82585,"src":"10248:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10255:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"10248:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10269:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"10248:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82629,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"10235:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77807_$","typeString":"type(contract IWrappedVara)"}},"id":82633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10235:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":82634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10282:8:164","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":2697,"src":"10235:55:164","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":82635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10235:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10229:63:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10204:88:164"},{"expression":{"id":82646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82638,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82585,"src":"10302:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10309:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"10302:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10322:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"10302:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82643,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82293,"src":"10353:40:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82644,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82627,"src":"10396:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10353:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10302:108:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82647,"nodeType":"ExpressionStatement","src":"10302:108:164"},{"expression":{"id":82656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82648,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82585,"src":"10420:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10427:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"10420:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10440:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86153,"src":"10420:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82653,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82296,"src":"10472:41:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82654,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82627,"src":"10516:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10472:58:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10420:110:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82657,"nodeType":"ExpressionStatement","src":"10420:110:164"},{"expression":{"id":82664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82658,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82585,"src":"10540:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10547:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"10540:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10560:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86156,"src":"10540:35:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82663,"name":"PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82346,"src":"10578:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10540:54:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82665,"nodeType":"ExpressionStatement","src":"10540:54:164"}]},"documentation":{"id":82565,"nodeType":"StructuredDocumentation","src":"7199:309:164","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":82568,"kind":"modifierInvocation","modifierName":{"id":82567,"name":"onlyOwner","nameLocations":["7544:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"7544:9:164"},"nodeType":"ModifierInvocation","src":"7544:9:164"},{"arguments":[{"hexValue":"35","id":82570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:164","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":82571,"kind":"modifierInvocation","modifierName":{"id":82569,"name":"reinitializer","nameLocations":["7554:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"7554:13:164"},"nodeType":"ModifierInvocation","src":"7554:16:164"}],"name":"reinitialize","nameLocation":"7522:12:164","parameters":{"id":82566,"nodeType":"ParameterList","parameters":[],"src":"7534:2:164"},"returnParameters":{"id":82572,"nodeType":"ParameterList","parameters":[],"src":"7571:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82677,"nodeType":"FunctionDefinition","src":"10766:84:164","nodes":[],"body":{"id":82676,"nodeType":"Block","src":"10848:2:164","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":82668,"nodeType":"StructuredDocumentation","src":"10607: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":82674,"kind":"modifierInvocation","modifierName":{"id":82673,"name":"onlyOwner","nameLocations":["10838:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"10838:9:164"},"nodeType":"ModifierInvocation","src":"10838:9:164"}],"name":"_authorizeUpgrade","nameLocation":"10775:17:164","overrides":{"id":82672,"nodeType":"OverrideSpecifier","overrides":[],"src":"10829:8:164"},"parameters":{"id":82671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82670,"mutability":"mutable","name":"newImplementation","nameLocation":"10801:17:164","nodeType":"VariableDeclaration","scope":82677,"src":"10793:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82669,"name":"address","nodeType":"ElementaryTypeName","src":"10793:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10792:27:164"},"returnParameters":{"id":82675,"nodeType":"ParameterList","parameters":[],"src":"10848:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82734,"nodeType":"FunctionDefinition","src":"11022:1014:164","nodes":[],"body":{"id":82733,"nodeType":"Block","src":"11086:950:164","nodes":[],"statements":[{"assignments":[82686],"declarations":[{"constant":false,"id":82686,"mutability":"mutable","name":"router","nameLocation":"11112:6:164","nodeType":"VariableDeclaration","scope":82733,"src":"11096:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82685,"nodeType":"UserDefinedTypeName","pathNode":{"id":82684,"name":"Storage","nameLocations":["11096:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"11096:7:164"},"referencedDeclaration":77264,"src":"11096:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82689,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82687,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"11121:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11121:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11096:34:164"},{"assignments":[82694],"declarations":[{"constant":false,"id":82694,"mutability":"mutable","name":"validationSettings","nameLocation":"11175:18:164","nodeType":"VariableDeclaration","scope":82733,"src":"11140:53:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86227_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":82693,"nodeType":"UserDefinedTypeName","pathNode":{"id":82692,"name":"Gear.ValidationSettingsView","nameLocations":["11140:4:164","11145:22:164"],"nodeType":"IdentifierPath","referencedDeclaration":86227,"src":"11140:27:164"},"referencedDeclaration":86227,"src":"11140:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86227_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":82700,"initialValue":{"arguments":[{"expression":{"id":82697,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11208:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11215:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"11208:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":82695,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"11196:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11201:6:164","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":87131,"src":"11196:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$86215_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$86227_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":82699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11196:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86227_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"11140:94:164"},{"expression":{"arguments":[{"expression":{"id":82702,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11291:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11298:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"11291:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":82704,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11346:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11353:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77243,"src":"11346:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":82706,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11402:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11409:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"11402:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":82708,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82694,"src":"11456:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86227_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":82709,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11505:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11512:15:164","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":77255,"src":"11505:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":82711,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11552:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11559:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"11552:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":82713,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11597:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11604:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"11597:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11617:13:164","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":86141,"src":"11597:33:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82716,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11665:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11672:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"11665:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11685:19:164","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":86144,"src":"11665:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82719,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11733:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11740:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"11733:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11753:13:164","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":86147,"src":"11733:33:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":82722,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11810:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11817:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"11810:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11830:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"11810:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82725,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11903:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11910:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"11903:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11923:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86153,"src":"11903:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82728,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82686,"src":"11983:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11990:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"11983:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12003:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86156,"src":"11983:35:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$86227_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$86097_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$86203_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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82701,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77231,"src":"11251:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$77231_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":82731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11277:12:164","11324:20:164","11387:13:164","11436:18:164","11488:15:164","11541:9:164","11582:13:164","11644:19:164","11718:13:164","11780:28:164","11872:29:164","11966:15:164"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee","protocolVersion"],"nodeType":"FunctionCall","src":"11251:778:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$77231_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":82683,"id":82732,"nodeType":"Return","src":"11244:785:164"}]},"baseFunctions":[77427],"documentation":{"id":82678,"nodeType":"StructuredDocumentation","src":"10875:142:164","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":"11031:11:164","parameters":{"id":82679,"nodeType":"ParameterList","parameters":[],"src":"11042:2:164"},"returnParameters":{"id":82683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82734,"src":"11066:18:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$77231_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":82681,"nodeType":"UserDefinedTypeName","pathNode":{"id":82680,"name":"StorageView","nameLocations":["11066:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":77231,"src":"11066:11:164"},"referencedDeclaration":77231,"src":"11066:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$77231_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"11065:20:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82746,"nodeType":"FunctionDefinition","src":"12172:109:164","nodes":[],"body":{"id":82745,"nodeType":"Block","src":"12230:51:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82740,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"12247:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12247:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12257:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"12247:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12270:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86100,"src":"12247:27:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82739,"id":82744,"nodeType":"Return","src":"12240:34:164"}]},"baseFunctions":[77433],"documentation":{"id":82735,"nodeType":"StructuredDocumentation","src":"12042:125:164","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":"12181:16:164","parameters":{"id":82736,"nodeType":"ParameterList","parameters":[],"src":"12197:2:164"},"returnParameters":{"id":82739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82746,"src":"12221:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12221:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12220:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82758,"nodeType":"FunctionDefinition","src":"12427:113:164","nodes":[],"body":{"id":82757,"nodeType":"Block","src":"12484:56:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82752,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"12501:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12501:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12511:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"12501:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12524:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86104,"src":"12501:32:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":82751,"id":82756,"nodeType":"Return","src":"12494:39:164"}]},"baseFunctions":[77439],"documentation":{"id":82747,"nodeType":"StructuredDocumentation","src":"12287:135:164","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":"12436:16:164","parameters":{"id":82748,"nodeType":"ParameterList","parameters":[],"src":"12452:2:164"},"returnParameters":{"id":82751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82758,"src":"12476:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82749,"name":"uint48","nodeType":"ElementaryTypeName","src":"12476:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12475:8:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82770,"nodeType":"FunctionDefinition","src":"12702:125:164","nodes":[],"body":{"id":82769,"nodeType":"Block","src":"12768:59:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82764,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"12785:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12785:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12795:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77243,"src":"12785:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12816:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86088,"src":"12785:35:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82763,"id":82768,"nodeType":"Return","src":"12778:42:164"}]},"baseFunctions":[77445],"documentation":{"id":82759,"nodeType":"StructuredDocumentation","src":"12546:151:164","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":"12711:24:164","parameters":{"id":82760,"nodeType":"ParameterList","parameters":[],"src":"12735:2:164"},"returnParameters":{"id":82763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82770,"src":"12759:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12759:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12758:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82782,"nodeType":"FunctionDefinition","src":"13004:134:164","nodes":[],"body":{"id":82781,"nodeType":"Block","src":"13074:64:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82776,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"13091:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13091:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13101:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77243,"src":"13091:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13122:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86090,"src":"13091:40:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":82775,"id":82780,"nodeType":"Return","src":"13084:47:164"}]},"baseFunctions":[77451],"documentation":{"id":82771,"nodeType":"StructuredDocumentation","src":"12833:166:164","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":"13013:29:164","parameters":{"id":82772,"nodeType":"ParameterList","parameters":[],"src":"13042:2:164"},"returnParameters":{"id":82775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82782,"src":"13066:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82773,"name":"uint48","nodeType":"ElementaryTypeName","src":"13066:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13065:8:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82794,"nodeType":"FunctionDefinition","src":"13290:106:164","nodes":[],"body":{"id":82793,"nodeType":"Block","src":"13342:54:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82788,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"13359:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13359:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13369:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"13359:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13383:6:164","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":85969,"src":"13359:30:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82787,"id":82792,"nodeType":"Return","src":"13352:37:164"}]},"baseFunctions":[77457],"documentation":{"id":82783,"nodeType":"StructuredDocumentation","src":"13144:141:164","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":"13299:10:164","parameters":{"id":82784,"nodeType":"ParameterList","parameters":[],"src":"13309:2:164"},"returnParameters":{"id":82787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82794,"src":"13333:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82785,"name":"address","nodeType":"ElementaryTypeName","src":"13333:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13332:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82806,"nodeType":"FunctionDefinition","src":"13561:112:164","nodes":[],"body":{"id":82805,"nodeType":"Block","src":"13614:59:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82800,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"13631:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13631:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13641:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"13631:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13655:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"13631:35:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82799,"id":82804,"nodeType":"Return","src":"13624:42:164"}]},"baseFunctions":[77463],"documentation":{"id":82795,"nodeType":"StructuredDocumentation","src":"13402:154:164","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":"13570:11:164","parameters":{"id":82796,"nodeType":"ParameterList","parameters":[],"src":"13581:2:164"},"returnParameters":{"id":82799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82806,"src":"13605:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82797,"name":"address","nodeType":"ElementaryTypeName","src":"13605:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13604:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82818,"nodeType":"FunctionDefinition","src":"13833:110:164","nodes":[],"body":{"id":82817,"nodeType":"Block","src":"13885:58:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82812,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"13902:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13902:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13912:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"13902:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13926:10:164","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":85975,"src":"13902:34:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82811,"id":82816,"nodeType":"Return","src":"13895:41:164"}]},"baseFunctions":[77469],"documentation":{"id":82807,"nodeType":"StructuredDocumentation","src":"13679:149:164","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":"13842:10:164","parameters":{"id":82808,"nodeType":"ParameterList","parameters":[],"src":"13852:2:164"},"returnParameters":{"id":82811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82810,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82818,"src":"13876:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82809,"name":"address","nodeType":"ElementaryTypeName","src":"13876:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13875:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82833,"nodeType":"FunctionDefinition","src":"14136:175:164","nodes":[],"body":{"id":82832,"nodeType":"Block","src":"14231:80:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82827,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"14274:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14274:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82825,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"14248:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14253:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86851,"src":"14248:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14248:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14285:19:164","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85937,"src":"14248:56:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":82824,"id":82831,"nodeType":"Return","src":"14241:63:164"}]},"baseFunctions":[77476],"documentation":{"id":82819,"nodeType":"StructuredDocumentation","src":"13949:182:164","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":"14145:29:164","parameters":{"id":82820,"nodeType":"ParameterList","parameters":[],"src":"14174:2:164"},"returnParameters":{"id":82824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82823,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82833,"src":"14198:31:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82822,"nodeType":"UserDefinedTypeName","pathNode":{"id":82821,"name":"Gear.AggregatedPublicKey","nameLocations":["14198:4:164","14203:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":85932,"src":"14198:24:164"},"referencedDeclaration":85932,"src":"14198:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"14197:33:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82850,"nodeType":"FunctionDefinition","src":"14777:207:164","nodes":[],"body":{"id":82849,"nodeType":"Block","src":"14869:115:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82843,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"14925:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14925:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82841,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"14899:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14904:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86851,"src":"14899:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14899:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14936:40:164","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":85940,"src":"14899:77:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":82839,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87588,"src":"14886:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$87588_$","typeString":"type(library SSTORE2)"}},"id":82840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14894:4:164","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":87561,"src":"14886:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":82847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14886:91:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":82838,"id":82848,"nodeType":"Return","src":"14879:98:164"}]},"baseFunctions":[77482],"documentation":{"id":82834,"nodeType":"StructuredDocumentation","src":"14317:455:164","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":"14786:43:164","parameters":{"id":82835,"nodeType":"ParameterList","parameters":[],"src":"14829:2:164"},"returnParameters":{"id":82838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82837,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82850,"src":"14855:12:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82836,"name":"bytes","nodeType":"ElementaryTypeName","src":"14855:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14854:14:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":82897,"nodeType":"FunctionDefinition","src":"15156:375:164","nodes":[],"body":{"id":82896,"nodeType":"Block","src":"15238:293:164","nodes":[],"statements":[{"assignments":[82863],"declarations":[{"constant":false,"id":82863,"mutability":"mutable","name":"_currentValidators","nameLocation":"15272:18:164","nodeType":"VariableDeclaration","scope":82896,"src":"15248:42:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82862,"nodeType":"UserDefinedTypeName","pathNode":{"id":82861,"name":"Gear.Validators","nameLocations":["15248:4:164","15253:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"15248:15:164"},"referencedDeclaration":85953,"src":"15248:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":82869,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82866,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"15319:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15319:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82864,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"15293:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15298:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86851,"src":"15293:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15293:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15248:81:164"},{"body":{"id":82892,"nodeType":"Block","src":"15389:114:164","statements":[{"condition":{"id":82887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15407:39:164","subExpression":{"baseExpression":{"expression":{"id":82881,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82863,"src":"15408:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15427:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85945,"src":"15408:22:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82886,"indexExpression":{"baseExpression":{"id":82883,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82854,"src":"15431:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82885,"indexExpression":{"id":82884,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82871,"src":"15443:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15431:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15408:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82891,"nodeType":"IfStatement","src":"15403:90:164","trueBody":{"id":82890,"nodeType":"Block","src":"15448:45:164","statements":[{"expression":{"hexValue":"66616c7365","id":82888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15473:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":82858,"id":82889,"nodeType":"Return","src":"15466:12:164"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82874,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82871,"src":"15360:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82875,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82854,"src":"15364:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15376:6:164","memberName":"length","nodeType":"MemberAccess","src":"15364:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15360:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82893,"initializationExpression":{"assignments":[82871],"declarations":[{"constant":false,"id":82871,"mutability":"mutable","name":"i","nameLocation":"15353:1:164","nodeType":"VariableDeclaration","scope":82893,"src":"15345:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82870,"name":"uint256","nodeType":"ElementaryTypeName","src":"15345:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82873,"initialValue":{"hexValue":"30","id":82872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15357:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15345:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15384:3:164","subExpression":{"id":82878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82871,"src":"15384:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82880,"nodeType":"ExpressionStatement","src":"15384:3:164"},"nodeType":"ForStatement","src":"15340:163:164"},{"expression":{"hexValue":"74727565","id":82894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15520:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":82858,"id":82895,"nodeType":"Return","src":"15513:11:164"}]},"baseFunctions":[77491],"documentation":{"id":82851,"nodeType":"StructuredDocumentation","src":"14990:161:164","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":"15165:13:164","parameters":{"id":82855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82854,"mutability":"mutable","name":"_validators","nameLocation":"15198:11:164","nodeType":"VariableDeclaration","scope":82897,"src":"15179:30:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82852,"name":"address","nodeType":"ElementaryTypeName","src":"15179:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82853,"nodeType":"ArrayTypeName","src":"15179:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15178:32:164"},"returnParameters":{"id":82858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82857,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82897,"src":"15232:4:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82856,"name":"bool","nodeType":"ElementaryTypeName","src":"15232:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15231:6:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82915,"nodeType":"FunctionDefinition","src":"15693:144:164","nodes":[],"body":{"id":82914,"nodeType":"Block","src":"15761:76:164","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82907,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"15804:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15804:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82905,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"15778:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15783:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86851,"src":"15778:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15778:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15815:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85945,"src":"15778:40:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82912,"indexExpression":{"id":82911,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82900,"src":"15819:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15778:52:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":82904,"id":82913,"nodeType":"Return","src":"15771:59:164"}]},"baseFunctions":[77499],"documentation":{"id":82898,"nodeType":"StructuredDocumentation","src":"15537:151:164","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":"15702:11:164","parameters":{"id":82901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82900,"mutability":"mutable","name":"_validator","nameLocation":"15722:10:164","nodeType":"VariableDeclaration","scope":82915,"src":"15714:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82899,"name":"address","nodeType":"ElementaryTypeName","src":"15714:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15713:20:164"},"returnParameters":{"id":82904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82915,"src":"15755:4:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82902,"name":"bool","nodeType":"ElementaryTypeName","src":"15755:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15754:6:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82940,"nodeType":"FunctionDefinition","src":"16081:285:164","nodes":[],"body":{"id":82939,"nodeType":"Block","src":"16196:170:164","nodes":[],"statements":[{"assignments":[82927],"declarations":[{"constant":false,"id":82927,"mutability":"mutable","name":"router","nameLocation":"16230:6:164","nodeType":"VariableDeclaration","scope":82939,"src":"16206:30:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82926,"nodeType":"UserDefinedTypeName","pathNode":{"id":82925,"name":"IRouter.Storage","nameLocations":["16206:7:164","16214:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"16206:15:164"},"referencedDeclaration":77264,"src":"16206:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82930,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82928,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"16239:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16239:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16206:42:164"},{"expression":{"components":[{"expression":{"expression":{"id":82931,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82927,"src":"16266:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16273:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"16266:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16292:18:164","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86206,"src":"16266:44:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":82934,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82927,"src":"16312:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16319:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"16312:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16338:20:164","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"16312:46:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":82937,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16265:94:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":82922,"id":82938,"nodeType":"Return","src":"16258:101:164"}]},"baseFunctions":[77507],"documentation":{"id":82916,"nodeType":"StructuredDocumentation","src":"15843:233:164","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":"16090:24:164","parameters":{"id":82917,"nodeType":"ParameterList","parameters":[],"src":"16114:2:164"},"returnParameters":{"id":82922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82919,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16146:18:164","nodeType":"VariableDeclaration","scope":82940,"src":"16138:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82918,"name":"uint128","nodeType":"ElementaryTypeName","src":"16138:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":82921,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16174:20:164","nodeType":"VariableDeclaration","scope":82940,"src":"16166:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82920,"name":"uint128","nodeType":"ElementaryTypeName","src":"16166:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16137:58:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82955,"nodeType":"FunctionDefinition","src":"16498:126:164","nodes":[],"body":{"id":82954,"nodeType":"Block","src":"16559:65:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82949,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"16602:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16602:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82947,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"16576:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16581:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86851,"src":"16576:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16576:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85949,"src":"16576:41:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":82946,"id":82953,"nodeType":"Return","src":"16569:48:164"}]},"baseFunctions":[77514],"documentation":{"id":82941,"nodeType":"StructuredDocumentation","src":"16372:121:164","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":"16507:10:164","parameters":{"id":82942,"nodeType":"ParameterList","parameters":[],"src":"16517:2:164"},"returnParameters":{"id":82946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82955,"src":"16541:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82943,"name":"address","nodeType":"ElementaryTypeName","src":"16541:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82944,"nodeType":"ArrayTypeName","src":"16541:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"16540:18:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82970,"nodeType":"FunctionDefinition","src":"16763:129:164","nodes":[],"body":{"id":82969,"nodeType":"Block","src":"16820:72:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82963,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"16863:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16863:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82961,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"16837:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16842:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86851,"src":"16837:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16837:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16874:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85949,"src":"16837:41:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16879:6:164","memberName":"length","nodeType":"MemberAccess","src":"16837:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82960,"id":82968,"nodeType":"Return","src":"16830:55:164"}]},"baseFunctions":[77520],"documentation":{"id":82956,"nodeType":"StructuredDocumentation","src":"16630:128:164","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":"16772:15:164","parameters":{"id":82957,"nodeType":"ParameterList","parameters":[],"src":"16787:2:164"},"returnParameters":{"id":82960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82970,"src":"16811:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82958,"name":"uint256","nodeType":"ElementaryTypeName","src":"16811:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16810:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83001,"nodeType":"FunctionDefinition","src":"17093:348:164","nodes":[],"body":{"id":83000,"nodeType":"Block","src":"17154:287:164","nodes":[],"statements":[{"assignments":[82980],"declarations":[{"constant":false,"id":82980,"mutability":"mutable","name":"router","nameLocation":"17188:6:164","nodeType":"VariableDeclaration","scope":83000,"src":"17164:30:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82979,"nodeType":"UserDefinedTypeName","pathNode":{"id":82978,"name":"IRouter.Storage","nameLocations":["17164:7:164","17172:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"17164:15:164"},"referencedDeclaration":77264,"src":"17164:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82983,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82981,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"17197:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17197:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17164:42:164"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":82988,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82980,"src":"17287:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82986,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"17261:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86851,"src":"17261:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17261:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17295:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85949,"src":"17261:38:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17300:6:164","memberName":"length","nodeType":"MemberAccess","src":"17261:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82992,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82980,"src":"17320:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17327:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"17320:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:18:164","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86206,"src":"17320:44:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":82995,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82980,"src":"17378:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17385:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77251,"src":"17378:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86215_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17404:20:164","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"17378:46:164","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":82984,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"17223:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":82985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17228:19:164","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":87019,"src":"17223:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":82998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17223:211:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82975,"id":82999,"nodeType":"Return","src":"17216:218:164"}]},"baseFunctions":[77526],"documentation":{"id":82971,"nodeType":"StructuredDocumentation","src":"16898:190:164","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":"17102:19:164","parameters":{"id":82972,"nodeType":"ParameterList","parameters":[],"src":"17121:2:164"},"returnParameters":{"id":82975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82974,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83001,"src":"17145:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82973,"name":"uint256","nodeType":"ElementaryTypeName","src":"17145:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17144:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83015,"nodeType":"FunctionDefinition","src":"17613:122:164","nodes":[],"body":{"id":83014,"nodeType":"Block","src":"17697:38:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83010,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"17714:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$85378_$","typeString":"type(contract super Router)"}},"id":83011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17720:6:164","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":20663,"src":"17714:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":83012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83009,"id":83013,"nodeType":"Return","src":"17707:21:164"}]},"baseFunctions":[20663,77532],"documentation":{"id":83002,"nodeType":"StructuredDocumentation","src":"17447:161:164","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":"17622:6:164","overrides":{"id":83006,"nodeType":"OverrideSpecifier","overrides":[{"id":83004,"name":"IRouter","nameLocations":["17652:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77791,"src":"17652:7:164"},{"id":83005,"name":"PausableUpgradeable","nameLocations":["17661:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":20737,"src":"17661:19:164"}],"src":"17643:38:164"},"parameters":{"id":83003,"nodeType":"ParameterList","parameters":[],"src":"17628:2:164"},"returnParameters":{"id":83009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83015,"src":"17691:4:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83007,"name":"bool","nodeType":"ElementaryTypeName","src":"17691:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17690:6:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83027,"nodeType":"FunctionDefinition","src":"17860:130:164","nodes":[],"body":{"id":83026,"nodeType":"Block","src":"17941:49:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83022,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"17958:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17958:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17968:15:164","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":77255,"src":"17958:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":83021,"id":83025,"nodeType":"Return","src":"17951:32:164"}]},"baseFunctions":[77539],"documentation":{"id":83016,"nodeType":"StructuredDocumentation","src":"17741:114:164","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17869:15:164","parameters":{"id":83017,"nodeType":"ParameterList","parameters":[],"src":"17884:2:164"},"returnParameters":{"id":83021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83027,"src":"17908:31:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":83019,"nodeType":"UserDefinedTypeName","pathNode":{"id":83018,"name":"Gear.ComputationSettings","nameLocations":["17908:4:164","17913:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":86097,"src":"17908:24:164"},"referencedDeclaration":86097,"src":"17908:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86097_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17907:33:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83044,"nodeType":"FunctionDefinition","src":"18099:134:164","nodes":[],"body":{"id":83043,"nodeType":"Block","src":"18172:61:164","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83036,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"18189:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18189:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18199:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"18189:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18212:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"18189:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83041,"indexExpression":{"id":83040,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83030,"src":"18218:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18189:37:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"functionReturnParameters":83035,"id":83042,"nodeType":"Return","src":"18182:44:164"}]},"baseFunctions":[77548],"documentation":{"id":83028,"nodeType":"StructuredDocumentation","src":"17996:98:164","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":"18108:9:164","parameters":{"id":83031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83030,"mutability":"mutable","name":"_codeId","nameLocation":"18126:7:164","nodeType":"VariableDeclaration","scope":83044,"src":"18118:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18118:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18117:17:164"},"returnParameters":{"id":83035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83044,"src":"18156:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"},"typeName":{"id":83033,"nodeType":"UserDefinedTypeName","pathNode":{"id":83032,"name":"Gear.CodeState","nameLocations":["18156:4:164","18161:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86085,"src":"18156:14:164"},"referencedDeclaration":86085,"src":"18156:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"18155:16:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83103,"nodeType":"FunctionDefinition","src":"18357:378:164","nodes":[],"body":{"id":83102,"nodeType":"Block","src":"18454:281:164","nodes":[],"statements":[{"assignments":[83057],"declarations":[{"constant":false,"id":83057,"mutability":"mutable","name":"router","nameLocation":"18480:6:164","nodeType":"VariableDeclaration","scope":83102,"src":"18464:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83056,"nodeType":"UserDefinedTypeName","pathNode":{"id":83055,"name":"Storage","nameLocations":["18464:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"18464:7:164"},"referencedDeclaration":77264,"src":"18464:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83060,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83058,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"18489:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18489:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18464:34:164"},{"assignments":[83066],"declarations":[{"constant":false,"id":83066,"mutability":"mutable","name":"res","nameLocation":"18533:3:164","nodeType":"VariableDeclaration","scope":83102,"src":"18509:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86085_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":83064,"nodeType":"UserDefinedTypeName","pathNode":{"id":83063,"name":"Gear.CodeState","nameLocations":["18509:4:164","18514:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86085,"src":"18509:14:164"},"referencedDeclaration":86085,"src":"18509:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"id":83065,"nodeType":"ArrayTypeName","src":"18509:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86085_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":83074,"initialValue":{"arguments":[{"expression":{"id":83071,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83048,"src":"18560:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18570:6:164","memberName":"length","nodeType":"MemberAccess","src":"18560:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18539:20:164","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$86085_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":83068,"nodeType":"UserDefinedTypeName","pathNode":{"id":83067,"name":"Gear.CodeState","nameLocations":["18543:4:164","18548:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86085,"src":"18543:14:164"},"referencedDeclaration":86085,"src":"18543:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"id":83069,"nodeType":"ArrayTypeName","src":"18543:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86085_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":83073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18539:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86085_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18509:68:164"},{"body":{"id":83098,"nodeType":"Block","src":"18635:73:164","statements":[{"expression":{"id":83096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":83086,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83066,"src":"18649:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86085_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":83088,"indexExpression":{"id":83087,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83076,"src":"18653:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18649:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":83089,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83057,"src":"18658:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18665:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"18658:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18678:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"18658:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83095,"indexExpression":{"baseExpression":{"id":83092,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83048,"src":"18684:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83094,"indexExpression":{"id":83093,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83076,"src":"18694:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18684:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18658:39:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"src":"18649:48:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"id":83097,"nodeType":"ExpressionStatement","src":"18649:48:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83079,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83076,"src":"18608:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83080,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83048,"src":"18612:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18622:6:164","memberName":"length","nodeType":"MemberAccess","src":"18612:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18608:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83099,"initializationExpression":{"assignments":[83076],"declarations":[{"constant":false,"id":83076,"mutability":"mutable","name":"i","nameLocation":"18601:1:164","nodeType":"VariableDeclaration","scope":83099,"src":"18593:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83075,"name":"uint256","nodeType":"ElementaryTypeName","src":"18593:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83078,"initialValue":{"hexValue":"30","id":83077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18605:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18593:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18630:3:164","subExpression":{"id":83083,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83076,"src":"18630:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83085,"nodeType":"ExpressionStatement","src":"18630:3:164"},"nodeType":"ForStatement","src":"18588:120:164"},{"expression":{"id":83100,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83066,"src":"18725:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86085_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":83054,"id":83101,"nodeType":"Return","src":"18718:10:164"}]},"baseFunctions":[77559],"documentation":{"id":83045,"nodeType":"StructuredDocumentation","src":"18239:113:164","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":"18366:11:164","parameters":{"id":83049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83048,"mutability":"mutable","name":"_codesIds","nameLocation":"18397:9:164","nodeType":"VariableDeclaration","scope":83103,"src":"18378:28:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18378:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83047,"nodeType":"ArrayTypeName","src":"18378:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18377:30:164"},"returnParameters":{"id":83054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83053,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83103,"src":"18429:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86085_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":83051,"nodeType":"UserDefinedTypeName","pathNode":{"id":83050,"name":"Gear.CodeState","nameLocations":["18429:4:164","18434:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86085,"src":"18429:14:164"},"referencedDeclaration":86085,"src":"18429:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"id":83052,"nodeType":"ArrayTypeName","src":"18429:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86085_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"18428:25:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83119,"nodeType":"FunctionDefinition","src":"18861:140:164","nodes":[],"body":{"id":83118,"nodeType":"Block","src":"18934:67:164","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83111,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"18951:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18951:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18961:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"18951:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18974:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86138,"src":"18951:31:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":83116,"indexExpression":{"id":83115,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83106,"src":"18983:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18951:43:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83110,"id":83117,"nodeType":"Return","src":"18944:50:164"}]},"baseFunctions":[77567],"documentation":{"id":83104,"nodeType":"StructuredDocumentation","src":"18741:115:164","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":"18870:13:164","parameters":{"id":83107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83106,"mutability":"mutable","name":"_programId","nameLocation":"18892:10:164","nodeType":"VariableDeclaration","scope":83119,"src":"18884:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83105,"name":"address","nodeType":"ElementaryTypeName","src":"18884:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18883:20:164"},"returnParameters":{"id":83110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83119,"src":"18925:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18925:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18924:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83175,"nodeType":"FunctionDefinition","src":"19133:376:164","nodes":[],"body":{"id":83174,"nodeType":"Block","src":"19230:279:164","nodes":[],"statements":[{"assignments":[83131],"declarations":[{"constant":false,"id":83131,"mutability":"mutable","name":"router","nameLocation":"19256:6:164","nodeType":"VariableDeclaration","scope":83174,"src":"19240:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83130,"nodeType":"UserDefinedTypeName","pathNode":{"id":83129,"name":"Storage","nameLocations":["19240:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"19240:7:164"},"referencedDeclaration":77264,"src":"19240:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83134,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83132,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"19265:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19265:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19240:34:164"},{"assignments":[83139],"declarations":[{"constant":false,"id":83139,"mutability":"mutable","name":"res","nameLocation":"19302:3:164","nodeType":"VariableDeclaration","scope":83174,"src":"19285:20:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19285:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83138,"nodeType":"ArrayTypeName","src":"19285:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":83146,"initialValue":{"arguments":[{"expression":{"id":83143,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83123,"src":"19322:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19335:6:164","memberName":"length","nodeType":"MemberAccess","src":"19322:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19308:13:164","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":83140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19312:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83141,"nodeType":"ArrayTypeName","src":"19312:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":83145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19308:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19285:57:164"},{"body":{"id":83170,"nodeType":"Block","src":"19403:79:164","statements":[{"expression":{"id":83168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":83158,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83139,"src":"19417:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":83160,"indexExpression":{"id":83159,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83148,"src":"19421:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19417:6:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":83161,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83131,"src":"19426:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19433:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"19426:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19446:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86138,"src":"19426:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":83167,"indexExpression":{"baseExpression":{"id":83164,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83123,"src":"19455:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83166,"indexExpression":{"id":83165,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83148,"src":"19468:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19455:15:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19426:45:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"19417:54:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83169,"nodeType":"ExpressionStatement","src":"19417:54:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83151,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83148,"src":"19373:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83152,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83123,"src":"19377:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19390:6:164","memberName":"length","nodeType":"MemberAccess","src":"19377:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19373:23:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83171,"initializationExpression":{"assignments":[83148],"declarations":[{"constant":false,"id":83148,"mutability":"mutable","name":"i","nameLocation":"19366:1:164","nodeType":"VariableDeclaration","scope":83171,"src":"19358:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83147,"name":"uint256","nodeType":"ElementaryTypeName","src":"19358:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83150,"initialValue":{"hexValue":"30","id":83149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19370:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19358:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19398:3:164","subExpression":{"id":83155,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83148,"src":"19398:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83157,"nodeType":"ExpressionStatement","src":"19398:3:164"},"nodeType":"ForStatement","src":"19353:129:164"},{"expression":{"id":83172,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83139,"src":"19499:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":83128,"id":83173,"nodeType":"Return","src":"19492:10:164"}]},"baseFunctions":[77577],"documentation":{"id":83120,"nodeType":"StructuredDocumentation","src":"19007:121:164","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":"19142:15:164","parameters":{"id":83124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83123,"mutability":"mutable","name":"_programsIds","nameLocation":"19177:12:164","nodeType":"VariableDeclaration","scope":83175,"src":"19158:31:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83121,"name":"address","nodeType":"ElementaryTypeName","src":"19158:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83122,"nodeType":"ArrayTypeName","src":"19158:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"19157:33:164"},"returnParameters":{"id":83128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83175,"src":"19212:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19212:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83126,"nodeType":"ArrayTypeName","src":"19212:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"19211:18:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83187,"nodeType":"FunctionDefinition","src":"19626:115:164","nodes":[],"body":{"id":83186,"nodeType":"Block","src":"19681:60:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83181,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"19698:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19698:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19708:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"19698:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19721:13:164","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":86141,"src":"19698:36:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83180,"id":83185,"nodeType":"Return","src":"19691:43:164"}]},"baseFunctions":[77583],"documentation":{"id":83176,"nodeType":"StructuredDocumentation","src":"19515:106:164","text":" @dev Returns the count of programs.\n @return programsCount The count of programs."},"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"19635:13:164","parameters":{"id":83177,"nodeType":"ParameterList","parameters":[],"src":"19648:2:164"},"returnParameters":{"id":83180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83187,"src":"19672:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83178,"name":"uint256","nodeType":"ElementaryTypeName","src":"19672:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19671:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83199,"nodeType":"FunctionDefinition","src":"19878:127:164","nodes":[],"body":{"id":83198,"nodeType":"Block","src":"19939:66:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83193,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"19956:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19956:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19966:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"19956:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:19:164","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":86144,"src":"19956:42:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83192,"id":83197,"nodeType":"Return","src":"19949:49:164"}]},"baseFunctions":[77589],"documentation":{"id":83188,"nodeType":"StructuredDocumentation","src":"19747:126:164","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":"19887:19:164","parameters":{"id":83189,"nodeType":"ParameterList","parameters":[],"src":"19906:2:164"},"returnParameters":{"id":83192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83199,"src":"19930:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83190,"name":"uint256","nodeType":"ElementaryTypeName","src":"19930:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19929:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83211,"nodeType":"FunctionDefinition","src":"20202:147:164","nodes":[],"body":{"id":83210,"nodeType":"Block","src":"20274:75:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83205,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"20291:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20291:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20301:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"20291:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20314:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"20291:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83204,"id":83209,"nodeType":"Return","src":"20284:58:164"}]},"baseFunctions":[77595],"documentation":{"id":83200,"nodeType":"StructuredDocumentation","src":"20011:186:164","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":"20211:28:164","parameters":{"id":83201,"nodeType":"ParameterList","parameters":[],"src":"20239:2:164"},"returnParameters":{"id":83204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83211,"src":"20265:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83202,"name":"uint256","nodeType":"ElementaryTypeName","src":"20265:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20264:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83223,"nodeType":"FunctionDefinition","src":"20601:149:164","nodes":[],"body":{"id":83222,"nodeType":"Block","src":"20674:76:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83217,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"20691:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20691:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20701:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"20691:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20714:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86153,"src":"20691:52:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83216,"id":83221,"nodeType":"Return","src":"20684:59:164"}]},"baseFunctions":[77601],"documentation":{"id":83212,"nodeType":"StructuredDocumentation","src":"20355:241:164","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":"20610:29:164","parameters":{"id":83213,"nodeType":"ParameterList","parameters":[],"src":"20639:2:164"},"returnParameters":{"id":83216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83223,"src":"20665:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83214,"name":"uint256","nodeType":"ElementaryTypeName","src":"20665:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20664:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83235,"nodeType":"FunctionDefinition","src":"20883:121:164","nodes":[],"body":{"id":83234,"nodeType":"Block","src":"20942:62:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83229,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"20959:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20959:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20969:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"20959:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20982:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86156,"src":"20959:38:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83228,"id":83233,"nodeType":"Return","src":"20952:45:164"}]},"baseFunctions":[77607],"documentation":{"id":83224,"nodeType":"StructuredDocumentation","src":"20756:122:164","text":" @dev Returns the current protocol version.\n @return protocolVersion The current protocol version."},"functionSelector":"2ae9c600","implemented":true,"kind":"function","modifiers":[],"name":"protocolVersion","nameLocation":"20892:15:164","parameters":{"id":83225,"nodeType":"ParameterList","parameters":[],"src":"20907:2:164"},"returnParameters":{"id":83228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83235,"src":"20933:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83226,"name":"uint256","nodeType":"ElementaryTypeName","src":"20933:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20932:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83282,"nodeType":"FunctionDefinition","src":"21228:583:164","nodes":[],"body":{"id":83281,"nodeType":"Block","src":"21318:493:164","nodes":[],"statements":[{"assignments":[83245],"declarations":[{"constant":false,"id":83245,"mutability":"mutable","name":"currentProtocolVersion","nameLocation":"21336:22:164","nodeType":"VariableDeclaration","scope":83281,"src":"21328:30:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83244,"name":"uint256","nodeType":"ElementaryTypeName","src":"21328:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83250,"initialValue":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83246,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"21361:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21361:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21371:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"21361:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21384:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86156,"src":"21361:38:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21328:71:164"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"},"id":83255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83251,"name":"versionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83239,"src":"21413:11:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83252,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"21428:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":83253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21433:11:164","memberName":"VersionType","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"21428:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VersionType_$86266_$","typeString":"type(enum Gear.VersionType)"}},"id":83254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21445:5:164","memberName":"Major","nodeType":"MemberAccess","referencedDeclaration":86263,"src":"21428:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"src":"21413:37:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"},"id":83265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83261,"name":"versionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83239,"src":"21549:11:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83262,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"21564:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":83263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21569:11:164","memberName":"VersionType","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"21564:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VersionType_$86266_$","typeString":"type(enum Gear.VersionType)"}},"id":83264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21581:5:164","memberName":"Minor","nodeType":"MemberAccess","referencedDeclaration":86264,"src":"21564:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"src":"21549:37:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83278,"nodeType":"Block","src":"21717:88:164","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83274,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83245,"src":"21738:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":83275,"name":"PROTOCOL_VERSION_COMPONENT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82324,"src":"21763:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21738:56:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83243,"id":83277,"nodeType":"Return","src":"21731:63:164"}]},"id":83279,"nodeType":"IfStatement","src":"21545:260:164","trueBody":{"id":83273,"nodeType":"Block","src":"21588:123:164","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83266,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83245,"src":"21610:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":83267,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82314,"src":"21636:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21610:55:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83269,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21609:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":83270,"name":"PROTOCOL_VERSION_COMPONENT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82324,"src":"21669:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21609:91:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83243,"id":83272,"nodeType":"Return","src":"21602:98:164"}]}},"id":83280,"nodeType":"IfStatement","src":"21409:396:164","trueBody":{"id":83260,"nodeType":"Block","src":"21452:87:164","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83256,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83245,"src":"21473:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":83257,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82311,"src":"21499:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21473:55:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83243,"id":83259,"nodeType":"Return","src":"21466:62:164"}]}}]},"baseFunctions":[77616],"documentation":{"id":83236,"nodeType":"StructuredDocumentation","src":"21010:213:164","text":" @dev Returns the sub-protocol version for the given version type.\n @param versionType The type of version (major, minor, patch).\n @return subProtocolVersion The sub-protocol version."},"functionSelector":"ed018262","implemented":true,"kind":"function","modifiers":[],"name":"subProtocolVersion","nameLocation":"21237:18:164","parameters":{"id":83240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83239,"mutability":"mutable","name":"versionType","nameLocation":"21273:11:164","nodeType":"VariableDeclaration","scope":83282,"src":"21256:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"},"typeName":{"id":83238,"nodeType":"UserDefinedTypeName","pathNode":{"id":83237,"name":"Gear.VersionType","nameLocations":["21256:4:164","21261:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":86266,"src":"21256:16:164"},"referencedDeclaration":86266,"src":"21256:16:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"visibility":"internal"}],"src":"21255:30:164"},"returnParameters":{"id":83243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83282,"src":"21309:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83241,"name":"uint256","nodeType":"ElementaryTypeName","src":"21309:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21308:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83294,"nodeType":"FunctionDefinition","src":"21908:108:164","nodes":[],"body":{"id":83293,"nodeType":"Block","src":"21973:43:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83289,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"21990:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21990:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22000:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"21990:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":83288,"id":83292,"nodeType":"Return","src":"21983:26:164"}]},"baseFunctions":[77623],"documentation":{"id":83283,"nodeType":"StructuredDocumentation","src":"21817:86:164","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"21917:9:164","parameters":{"id":83284,"nodeType":"ParameterList","parameters":[],"src":"21926:2:164"},"returnParameters":{"id":83288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83294,"src":"21950:21:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":83286,"nodeType":"UserDefinedTypeName","pathNode":{"id":83285,"name":"Gear.Timelines","nameLocations":["21950:4:164","21955:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86203,"src":"21950:14:164"},"referencedDeclaration":86203,"src":"21950:14:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"21949:23:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83304,"nodeType":"FunctionDefinition","src":"22190:104:164","nodes":[],"body":{"id":83303,"nodeType":"Block","src":"22250:44:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83300,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20830,"src":"22267:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":83301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22267:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83299,"id":83302,"nodeType":"Return","src":"22260:27:164"}]},"baseFunctions":[77629],"documentation":{"id":83295,"nodeType":"StructuredDocumentation","src":"22022:163:164","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":"22199:16:164","parameters":{"id":83296,"nodeType":"ParameterList","parameters":[],"src":"22215:2:164"},"returnParameters":{"id":83299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83298,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83304,"src":"22241:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22241:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22240:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83320,"nodeType":"FunctionDefinition","src":"22458:116:164","nodes":[],"body":{"id":83319,"nodeType":"Block","src":"22515:59:164","nodes":[],"statements":[{"expression":{"id":83317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83312,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"22525:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22525:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22535:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"22525:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22549:6:164","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":85969,"src":"22525:30:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83316,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83307,"src":"22558:9:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22525:42:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83318,"nodeType":"ExpressionStatement","src":"22525:42:164"}]},"baseFunctions":[77635],"documentation":{"id":83305,"nodeType":"StructuredDocumentation","src":"22325:128:164","text":" @dev Sets the `Mirror` implementation address.\n @param newMirror The new mirror implementation address."},"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":83310,"kind":"modifierInvocation","modifierName":{"id":83309,"name":"onlyOwner","nameLocations":["22505:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"22505:9:164"},"nodeType":"ModifierInvocation","src":"22505:9:164"}],"name":"setMirror","nameLocation":"22467:9:164","parameters":{"id":83308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83307,"mutability":"mutable","name":"newMirror","nameLocation":"22485:9:164","nodeType":"VariableDeclaration","scope":83320,"src":"22477:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83306,"name":"address","nodeType":"ElementaryTypeName","src":"22477:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22476:19:164"},"returnParameters":{"id":83311,"nodeType":"ParameterList","parameters":[],"src":"22515:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83336,"nodeType":"FunctionDefinition","src":"22753:161:164","nodes":[],"body":{"id":83335,"nodeType":"Block","src":"22833:81:164","nodes":[],"statements":[{"expression":{"id":83333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83328,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"22843:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22853:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"22843:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22866:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"22843:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83332,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83323,"src":"22897:10:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22843:64:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83334,"nodeType":"ExpressionStatement","src":"22843:64:164"}]},"baseFunctions":[77641],"documentation":{"id":83321,"nodeType":"StructuredDocumentation","src":"22580:168:164","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":83326,"kind":"modifierInvocation","modifierName":{"id":83325,"name":"onlyOwner","nameLocations":["22823:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"22823:9:164"},"nodeType":"ModifierInvocation","src":"22823:9:164"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"22762:31:164","parameters":{"id":83324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83323,"mutability":"mutable","name":"newBaseFee","nameLocation":"22802:10:164","nodeType":"VariableDeclaration","scope":83336,"src":"22794:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83322,"name":"uint256","nodeType":"ElementaryTypeName","src":"22794:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22793:20:164"},"returnParameters":{"id":83327,"nodeType":"ParameterList","parameters":[],"src":"22833:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83352,"nodeType":"FunctionDefinition","src":"23148:165:164","nodes":[],"body":{"id":83351,"nodeType":"Block","src":"23230:83:164","nodes":[],"statements":[{"expression":{"id":83349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83344,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"23240:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23240:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23250:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"23240:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23263:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86153,"src":"23240:52:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83348,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83339,"src":"23295:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23240:66:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83350,"nodeType":"ExpressionStatement","src":"23240:66:164"}]},"baseFunctions":[77647],"documentation":{"id":83337,"nodeType":"StructuredDocumentation","src":"22920:223:164","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":83342,"kind":"modifierInvocation","modifierName":{"id":83341,"name":"onlyOwner","nameLocations":["23220:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"23220:9:164"},"nodeType":"ModifierInvocation","src":"23220:9:164"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"23157:32:164","parameters":{"id":83340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83339,"mutability":"mutable","name":"newExtraFee","nameLocation":"23198:11:164","nodeType":"VariableDeclaration","scope":83352,"src":"23190:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83338,"name":"uint256","nodeType":"ElementaryTypeName","src":"23190:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23189:21:164"},"returnParameters":{"id":83343,"nodeType":"ParameterList","parameters":[],"src":"23230:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83460,"nodeType":"FunctionDefinition","src":"23522:1196:164","nodes":[],"body":{"id":83459,"nodeType":"Block","src":"23601:1117:164","nodes":[],"statements":[{"assignments":[83362],"declarations":[{"constant":false,"id":83362,"mutability":"mutable","name":"currentProtocolVersion","nameLocation":"23619:22:164","nodeType":"VariableDeclaration","scope":83459,"src":"23611:30:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83361,"name":"uint256","nodeType":"ElementaryTypeName","src":"23611:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83367,"initialValue":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83363,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"23644:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23644:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23654:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"23644:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23667:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86156,"src":"23644:38:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23611:71:164"},{"assignments":[83369],"declarations":[{"constant":false,"id":83369,"mutability":"mutable","name":"majorVersion","nameLocation":"23700:12:164","nodeType":"VariableDeclaration","scope":83459,"src":"23692:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83368,"name":"uint256","nodeType":"ElementaryTypeName","src":"23692:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83373,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83370,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83362,"src":"23715:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":83371,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82311,"src":"23741:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23715:55:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23692:78:164"},{"assignments":[83375],"declarations":[{"constant":false,"id":83375,"mutability":"mutable","name":"minorVersion","nameLocation":"23788:12:164","nodeType":"VariableDeclaration","scope":83459,"src":"23780:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83374,"name":"uint256","nodeType":"ElementaryTypeName","src":"23780:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83382,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83376,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83362,"src":"23816:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":83377,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82314,"src":"23842:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23816:55:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83379,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23815:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":83380,"name":"PROTOCOL_VERSION_COMPONENT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82324,"src":"23875:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23815:91:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23780:126:164"},{"assignments":[83384],"declarations":[{"constant":false,"id":83384,"mutability":"mutable","name":"patchVersion","nameLocation":"23924:12:164","nodeType":"VariableDeclaration","scope":83459,"src":"23916:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83383,"name":"uint256","nodeType":"ElementaryTypeName","src":"23916:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83388,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83385,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83362,"src":"23939:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":83386,"name":"PROTOCOL_VERSION_COMPONENT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82324,"src":"23964:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23939:56:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23916:79:164"},{"assignments":[83390],"declarations":[{"constant":false,"id":83390,"mutability":"mutable","name":"newProtocolVersion","nameLocation":"24014:18:164","nodeType":"VariableDeclaration","scope":83459,"src":"24006:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83389,"name":"uint256","nodeType":"ElementaryTypeName","src":"24006:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83391,"nodeType":"VariableDeclarationStatement","src":"24006:26:164"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"},"id":83396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83392,"name":"_versionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83356,"src":"24046:12:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83393,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"24062:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":83394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24067:11:164","memberName":"VersionType","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"24062:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VersionType_$86266_$","typeString":"type(enum Gear.VersionType)"}},"id":83395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24079:5:164","memberName":"Major","nodeType":"MemberAccess","referencedDeclaration":86263,"src":"24062:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"src":"24046:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"},"id":83411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83407,"name":"_versionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83356,"src":"24193:12:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83408,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"24209:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":83409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24214:11:164","memberName":"VersionType","nodeType":"MemberAccess","referencedDeclaration":86266,"src":"24209:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VersionType_$86266_$","typeString":"type(enum Gear.VersionType)"}},"id":83410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24226:5:164","memberName":"Minor","nodeType":"MemberAccess","referencedDeclaration":86264,"src":"24209:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"src":"24193:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83445,"nodeType":"Block","src":"24404:180:164","statements":[{"expression":{"id":83443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83428,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83390,"src":"24418:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83429,"name":"majorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83369,"src":"24440:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83430,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82311,"src":"24456:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24440:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83432,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24439:47:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83433,"name":"minorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83375,"src":"24506:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83434,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82314,"src":"24522:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24506:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24505:47:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24439:113:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83438,"name":"patchVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83384,"src":"24556:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24571:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24556:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83441,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24555:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24439:134:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24418:155:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83444,"nodeType":"ExpressionStatement","src":"24418:155:164"}]},"id":83446,"nodeType":"IfStatement","src":"24189:395:164","trueBody":{"id":83427,"nodeType":"Block","src":"24233:165:164","statements":[{"expression":{"id":83425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83412,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83390,"src":"24247:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83413,"name":"majorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83369,"src":"24285:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83414,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82311,"src":"24301:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24285:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83416,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24284:47:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83417,"name":"minorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83375,"src":"24336:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24351:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24336:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83420,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24335:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83421,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82314,"src":"24357:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24335:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24334:53:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24284:103:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24247:140:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83426,"nodeType":"ExpressionStatement","src":"24247:140:164"}]}},"id":83447,"nodeType":"IfStatement","src":"24042:542:164","trueBody":{"id":83406,"nodeType":"Block","src":"24086:97:164","statements":[{"expression":{"id":83404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83397,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83390,"src":"24100:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83398,"name":"majorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83369,"src":"24122:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24137:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24122:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83401,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24121:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83402,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82311,"src":"24143:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24121:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24100:72:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83405,"nodeType":"ExpressionStatement","src":"24100:72:164"}]}},{"expression":{"id":83453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83448,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"24594:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24594:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24604:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"24594:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24617:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86156,"src":"24594:38:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83452,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83390,"src":"24635:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24594:59:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83454,"nodeType":"ExpressionStatement","src":"24594:59:164"},{"eventCall":{"arguments":[{"id":83456,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83390,"src":"24692:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83455,"name":"ProtocolVersionChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77284,"src":"24669:22:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":83457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24669:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83458,"nodeType":"EmitStatement","src":"24664:47:164"}]},"baseFunctions":[77654],"documentation":{"id":83353,"nodeType":"StructuredDocumentation","src":"23319:198:164","text":" @dev Bumps the version of the protocol, used by nodes.\n @param _versionType The type of version bump (major, minor, patch).\n Emits `ProtocolVersionChanged` event."},"functionSelector":"5734c0e1","implemented":true,"kind":"function","modifiers":[{"id":83359,"kind":"modifierInvocation","modifierName":{"id":83358,"name":"onlyOwner","nameLocations":["23591:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"23591:9:164"},"nodeType":"ModifierInvocation","src":"23591:9:164"}],"name":"bumpProtocolVersion","nameLocation":"23531:19:164","parameters":{"id":83357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83356,"mutability":"mutable","name":"_versionType","nameLocation":"23568:12:164","nodeType":"VariableDeclaration","scope":83460,"src":"23551:29:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"},"typeName":{"id":83355,"nodeType":"UserDefinedTypeName","pathNode":{"id":83354,"name":"Gear.VersionType","nameLocations":["23551:4:164","23556:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":86266,"src":"23551:16:164"},"referencedDeclaration":86266,"src":"23551:16:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86266","typeString":"enum Gear.VersionType"}},"visibility":"internal"}],"src":"23550:31:164"},"returnParameters":{"id":83360,"nodeType":"ParameterList","parameters":[],"src":"23601:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83470,"nodeType":"FunctionDefinition","src":"24773:59:164","nodes":[],"body":{"id":83469,"nodeType":"Block","src":"24807:25:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83466,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20712,"src":"24817:6:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":83467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24817:8:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83468,"nodeType":"ExpressionStatement","src":"24817:8:164"}]},"baseFunctions":[77658],"documentation":{"id":83461,"nodeType":"StructuredDocumentation","src":"24724:44:164","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":83464,"kind":"modifierInvocation","modifierName":{"id":83463,"name":"onlyOwner","nameLocations":["24797:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"24797:9:164"},"nodeType":"ModifierInvocation","src":"24797:9:164"}],"name":"pause","nameLocation":"24782:5:164","parameters":{"id":83462,"nodeType":"ParameterList","parameters":[],"src":"24787:2:164"},"returnParameters":{"id":83465,"nodeType":"ParameterList","parameters":[],"src":"24807:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":83480,"nodeType":"FunctionDefinition","src":"24889:63:164","nodes":[],"body":{"id":83479,"nodeType":"Block","src":"24925:27:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83476,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20736,"src":"24935:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":83477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24935:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83478,"nodeType":"ExpressionStatement","src":"24935:10:164"}]},"baseFunctions":[77662],"documentation":{"id":83471,"nodeType":"StructuredDocumentation","src":"24838:46:164","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":83474,"kind":"modifierInvocation","modifierName":{"id":83473,"name":"onlyOwner","nameLocations":["24915:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"24915:9:164"},"nodeType":"ModifierInvocation","src":"24915:9:164"}],"name":"unpause","nameLocation":"24898:7:164","parameters":{"id":83472,"nodeType":"ParameterList","parameters":[],"src":"24905:2:164"},"returnParameters":{"id":83475,"nodeType":"ParameterList","parameters":[],"src":"24925:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":83535,"nodeType":"FunctionDefinition","src":"25053:385:164","nodes":[],"body":{"id":83534,"nodeType":"Block","src":"25091:347:164","nodes":[],"statements":[{"assignments":[83486],"declarations":[{"constant":false,"id":83486,"mutability":"mutable","name":"router","nameLocation":"25117:6:164","nodeType":"VariableDeclaration","scope":83534,"src":"25101:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83485,"nodeType":"UserDefinedTypeName","pathNode":{"id":83484,"name":"Storage","nameLocations":["25101:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"25101:7:164"},"referencedDeclaration":77264,"src":"25101:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83487,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"25126:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25101:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83491,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83486,"src":"25154:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25161:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"25154:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25174:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86100,"src":"25154:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25190:1:164","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":83495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25182:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83494,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25182:7:164","typeDescriptions":{}}},"id":83497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25182:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25154:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83499,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77337,"src":"25194:21:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83490,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25146:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:72:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83502,"nodeType":"ExpressionStatement","src":"25146:72:164"},{"assignments":[83504],"declarations":[{"constant":false,"id":83504,"mutability":"mutable","name":"genesisHash","nameLocation":"25237:11:164","nodeType":"VariableDeclaration","scope":83534,"src":"25229:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25229:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83510,"initialValue":{"arguments":[{"expression":{"expression":{"id":83506,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83486,"src":"25261:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25268:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"25261:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25281:6:164","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":86102,"src":"25261:26:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":83505,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"25251:9:164","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25251:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25229:59:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83512,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83504,"src":"25307:11:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25330:1:164","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":83514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25322:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25322:7:164","typeDescriptions":{}}},"id":83516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25322:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25307:25:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83518,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77340,"src":"25334:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25334:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83511,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25299:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25299:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83521,"nodeType":"ExpressionStatement","src":"25299:57:164"},{"expression":{"id":83532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":83522,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83486,"src":"25367:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25374:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"25367:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25387:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86100,"src":"25367:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":83528,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83486,"src":"25404:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25411:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"25404:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25424:6:164","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":86102,"src":"25404:26:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":83527,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"25394:9:164","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25394:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25367:64:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83533,"nodeType":"ExpressionStatement","src":"25367:64:164"}]},"baseFunctions":[77666],"documentation":{"id":83481,"nodeType":"StructuredDocumentation","src":"24977:71:164","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"25062:17:164","parameters":{"id":83482,"nodeType":"ParameterList","parameters":[],"src":"25079:2:164"},"returnParameters":{"id":83483,"nodeType":"ParameterList","parameters":[],"src":"25091:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83664,"nodeType":"FunctionDefinition","src":"26300:986:164","nodes":[],"body":{"id":83663,"nodeType":"Block","src":"26444:842:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":83553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26471:1:164","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":83552,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26462:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26462:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":83555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26477:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26462:16:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83557,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77343,"src":"26480:12:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26480:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26454:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26454:41:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83560,"nodeType":"ExpressionStatement","src":"26454:41:164"},{"assignments":[83563],"declarations":[{"constant":false,"id":83563,"mutability":"mutable","name":"router","nameLocation":"26522:6:164","nodeType":"VariableDeclaration","scope":83663,"src":"26506:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83562,"nodeType":"UserDefinedTypeName","pathNode":{"id":83561,"name":"Storage","nameLocations":["26506:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"26506:7:164"},"referencedDeclaration":77264,"src":"26506:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83566,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83564,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"26531:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26531:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"26506:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83568,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83563,"src":"26558:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26565:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"26558:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26578:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86100,"src":"26558:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26594:1:164","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":83572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26586:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26586:7:164","typeDescriptions":{}}},"id":83574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26586:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26558:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83576,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77346,"src":"26598:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26598:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83567,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26550:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26550:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83579,"nodeType":"ExpressionStatement","src":"26550:82:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"},"id":83589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83581,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83563,"src":"26651:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26658:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"26651:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26671:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"26651:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83585,"indexExpression":{"id":83584,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83538,"src":"26677:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26651:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83586,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"26689:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":83587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26694:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"26689:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86085_$","typeString":"type(enum Gear.CodeState)"}},"id":83588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26704:7:164","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":86080,"src":"26689:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"src":"26651:60:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83590,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77349,"src":"26713:34:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26713:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83580,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26643:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26643:107:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83593,"nodeType":"ExpressionStatement","src":"26643:107:164"},{"assignments":[83596],"declarations":[{"constant":false,"id":83596,"mutability":"mutable","name":"_wrappedVara","nameLocation":"26774:12:164","nodeType":"VariableDeclaration","scope":83663,"src":"26761:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"},"typeName":{"id":83595,"nodeType":"UserDefinedTypeName","pathNode":{"id":83594,"name":"IWrappedVara","nameLocations":["26761:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":77807,"src":"26761:12:164"},"referencedDeclaration":77807,"src":"26761:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":83602,"initialValue":{"arguments":[{"expression":{"expression":{"id":83598,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83563,"src":"26802:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26809:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"26802:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26823:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"26802:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83597,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"26789:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77807_$","typeString":"type(contract IWrappedVara)"}},"id":83601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26789:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"26761:74:164"},{"assignments":[83604],"declarations":[{"constant":false,"id":83604,"mutability":"mutable","name":"baseFee","nameLocation":"26854:7:164","nodeType":"VariableDeclaration","scope":83663,"src":"26846:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83603,"name":"uint256","nodeType":"ElementaryTypeName","src":"26846:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83608,"initialValue":{"expression":{"expression":{"id":83605,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83563,"src":"26864:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26871:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"26864:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26884:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"26864:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26846:66:164"},{"clauses":[{"block":{"id":83623,"nodeType":"Block","src":"27005:2:164","statements":[]},"errorName":"","id":83624,"nodeType":"TryCatchClause","src":"27005:2:164"},{"block":{"id":83625,"nodeType":"Block","src":"27014:2:164","statements":[]},"errorName":"","id":83626,"nodeType":"TryCatchClause","src":"27008:8:164"}],"externalCall":{"arguments":[{"expression":{"id":83611,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26946:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26950:6:164","memberName":"sender","nodeType":"MemberAccess","src":"26946:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83615,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"26966:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":83614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26958:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83613,"name":"address","nodeType":"ElementaryTypeName","src":"26958:7:164","typeDescriptions":{}}},"id":83616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26958:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83617,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83604,"src":"26973:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83618,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83540,"src":"26982:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83619,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83542,"src":"26993:2:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83620,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83544,"src":"26997:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83621,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83546,"src":"27001:2:164","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":83609,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83596,"src":"26926:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":83610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26939:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"26926:19:164","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":83622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26926:78:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83627,"nodeType":"TryStatement","src":"26922:94:164"},{"assignments":[83629],"declarations":[{"constant":false,"id":83629,"mutability":"mutable","name":"success","nameLocation":"27030:7:164","nodeType":"VariableDeclaration","scope":83663,"src":"27025:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83628,"name":"bool","nodeType":"ElementaryTypeName","src":"27025:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83640,"initialValue":{"arguments":[{"expression":{"id":83632,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27066:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27070:6:164","memberName":"sender","nodeType":"MemberAccess","src":"27066:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83636,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27086:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":83635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27078:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83634,"name":"address","nodeType":"ElementaryTypeName","src":"27078:7:164","typeDescriptions":{}}},"id":83637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27078:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83638,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83604,"src":"27093:7:164","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":83630,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83596,"src":"27040:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":83631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27053:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"27040:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":83639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27040:61:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27025:76:164"},{"expression":{"arguments":[{"id":83642,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83629,"src":"27119:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83643,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77382,"src":"27128:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27128:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27111:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27111:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83646,"nodeType":"ExpressionStatement","src":"27111:38:164"},{"expression":{"id":83657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":83647,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83563,"src":"27160:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27167:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"27160:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27180:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"27160:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83653,"indexExpression":{"id":83650,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83538,"src":"27186:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27160:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":83654,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"27197:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":83655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27202:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"27197:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86085_$","typeString":"type(enum Gear.CodeState)"}},"id":83656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27212:19:164","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":86082,"src":"27197:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"src":"27160:71:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"id":83658,"nodeType":"ExpressionStatement","src":"27160:71:164"},{"eventCall":{"arguments":[{"id":83660,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83538,"src":"27271:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83659,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77296,"src":"27247:23:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27247:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83662,"nodeType":"EmitStatement","src":"27242:37:164"}]},"baseFunctions":[77680],"documentation":{"id":83536,"nodeType":"StructuredDocumentation","src":"25444:851:164","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":83549,"kind":"modifierInvocation","modifierName":{"id":83548,"name":"whenNotPaused","nameLocations":["26426:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"26426:13:164"},"nodeType":"ModifierInvocation","src":"26426:13:164"}],"name":"requestCodeValidation","nameLocation":"26309:21:164","parameters":{"id":83547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83538,"mutability":"mutable","name":"_codeId","nameLocation":"26339:7:164","nodeType":"VariableDeclaration","scope":83664,"src":"26331:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26331:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83540,"mutability":"mutable","name":"_deadline","nameLocation":"26356:9:164","nodeType":"VariableDeclaration","scope":83664,"src":"26348:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83539,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83542,"mutability":"mutable","name":"_v","nameLocation":"26373:2:164","nodeType":"VariableDeclaration","scope":83664,"src":"26367:8:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83541,"name":"uint8","nodeType":"ElementaryTypeName","src":"26367:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83544,"mutability":"mutable","name":"_r","nameLocation":"26385:2:164","nodeType":"VariableDeclaration","scope":83664,"src":"26377:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26377:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83546,"mutability":"mutable","name":"_s","nameLocation":"26397:2:164","nodeType":"VariableDeclaration","scope":83664,"src":"26389:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26389:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"26330:70:164"},"returnParameters":{"id":83550,"nodeType":"ParameterList","parameters":[],"src":"26444:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83930,"nodeType":"FunctionDefinition","src":"28793:2418:164","nodes":[],"body":{"id":83929,"nodeType":"Block","src":"29103:2108:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":83693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29130:1:164","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":83692,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"29121:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29121:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":83695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29136:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29121:16:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83697,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77343,"src":"29139:12:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29139:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29113:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29113:41:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83700,"nodeType":"ExpressionStatement","src":"29113:41:164"},{"assignments":[83703],"declarations":[{"constant":false,"id":83703,"mutability":"mutable","name":"router","nameLocation":"29181:6:164","nodeType":"VariableDeclaration","scope":83929,"src":"29165:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83702,"nodeType":"UserDefinedTypeName","pathNode":{"id":83701,"name":"Storage","nameLocations":["29165:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"29165:7:164"},"referencedDeclaration":77264,"src":"29165:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83706,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83704,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"29190:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29190:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"29165:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83708,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83703,"src":"29217:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29224:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"29217:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29237:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86100,"src":"29217:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29253:1:164","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":83712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29245:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29245:7:164","typeDescriptions":{}}},"id":83714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29245:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29217:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83716,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77346,"src":"29257:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29257:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29209:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29209:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83719,"nodeType":"ExpressionStatement","src":"29209:82:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"},"id":83729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83721,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83703,"src":"29310:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29317:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"29310:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29330:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"29310:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83725,"indexExpression":{"id":83724,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83669,"src":"29336:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29310:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83726,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"29348:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":83727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29353:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"29348:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86085_$","typeString":"type(enum Gear.CodeState)"}},"id":83728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29363:7:164","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":86080,"src":"29348:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"src":"29310:60:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83730,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77349,"src":"29372:34:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29372:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83720,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29302:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29302:107:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83733,"nodeType":"ExpressionStatement","src":"29302:107:164"},{"assignments":[83735],"declarations":[{"constant":false,"id":83735,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"29428:17:164","nodeType":"VariableDeclaration","scope":83929,"src":"29420:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83734,"name":"uint256","nodeType":"ElementaryTypeName","src":"29420:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83737,"initialValue":{"hexValue":"30","id":83736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29448:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29420:29:164"},{"body":{"id":83753,"nodeType":"Block","src":"29472:142:164","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":83740,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"29499:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83739,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"29490:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29490:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29529:1:164","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":83743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29521:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29521:7:164","typeDescriptions":{}}},"id":83745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29521:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29490:41:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83749,"nodeType":"IfStatement","src":"29486:85:164","trueBody":{"id":83748,"nodeType":"Block","src":"29533:38:164","statements":[{"id":83747,"nodeType":"Break","src":"29551:5:164"}]}},{"expression":{"id":83751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29584:19:164","subExpression":{"id":83750,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"29584:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83752,"nodeType":"ExpressionStatement","src":"29584:19:164"}]},"condition":{"hexValue":"74727565","id":83738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29466:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":83754,"nodeType":"WhileStatement","src":"29459:155:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83756,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83672,"src":"29632:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29644:6:164","memberName":"length","nodeType":"MemberAccess","src":"29632:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83758,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"29654:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29632:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":83761,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83672,"src":"29697:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29709:6:164","memberName":"length","nodeType":"MemberAccess","src":"29697:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83763,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"29717:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83760,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77356,"src":"29673:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":83764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29673:62:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83755,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29624:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29624:112:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83766,"nodeType":"ExpressionStatement","src":"29624:112:164"},{"body":{"id":83799,"nodeType":"Block","src":"29796:174:164","statements":[{"assignments":[83779],"declarations":[{"constant":false,"id":83779,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"29818:16:164","nodeType":"VariableDeclaration","scope":83799,"src":"29810:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29810:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83783,"initialValue":{"arguments":[{"id":83781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83768,"src":"29846:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83780,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"29837:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29837:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"29810:38:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":83785,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83672,"src":"29870:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83787,"indexExpression":{"id":83786,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83768,"src":"29882:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29870:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83788,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83779,"src":"29888:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29870:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":83791,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83768,"src":"29922:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":83792,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83672,"src":"29925:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83794,"indexExpression":{"id":83793,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83768,"src":"29937:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29925:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83795,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83779,"src":"29941:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83790,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77365,"src":"29906:15:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_error_$","typeString":"function (uint256,bytes32,bytes32) pure returns (error)"}},"id":83796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29906:52:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83784,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29862:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29862:97:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83798,"nodeType":"ExpressionStatement","src":"29862:97:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83771,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83768,"src":"29767:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83772,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83672,"src":"29771:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29783:6:164","memberName":"length","nodeType":"MemberAccess","src":"29771:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29767:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83800,"initializationExpression":{"assignments":[83768],"declarations":[{"constant":false,"id":83768,"mutability":"mutable","name":"i","nameLocation":"29760:1:164","nodeType":"VariableDeclaration","scope":83800,"src":"29752:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83767,"name":"uint256","nodeType":"ElementaryTypeName","src":"29752:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83770,"initialValue":{"hexValue":"30","id":83769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29764:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29752:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29791:3:164","subExpression":{"id":83775,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83768,"src":"29791:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83777,"nodeType":"ExpressionStatement","src":"29791:3:164"},"nodeType":"ForStatement","src":"29747:223:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83802,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30046:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30052:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"30046:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83804,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83674,"src":"30065:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30046:28:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":83807,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83674,"src":"30093:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83806,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77370,"src":"30076:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":83808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30076:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83801,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30038:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30038:66:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83810,"nodeType":"ExpressionStatement","src":"30038:66:164"},{"assignments":[83812],"declarations":[{"constant":false,"id":83812,"mutability":"mutable","name":"structHash","nameLocation":"30123:10:164","nodeType":"VariableDeclaration","scope":83929,"src":"30115:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83811,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30115:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83831,"initialValue":{"arguments":[{"arguments":[{"id":83816,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82299,"src":"30187:42:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83817,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"30247:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83818,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83669,"src":"30275:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":83822,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83672,"src":"30327:11:164","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":83820,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30310:3:164","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30314:12:164","memberName":"encodePacked","nodeType":"MemberAccess","src":"30310:16:164","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30310:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83819,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"30300:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30300:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":83826,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"30368:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83825,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20551,"src":"30358:9:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":83827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30358:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83828,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83674,"src":"30397:9:164","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":83814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30159:3:164","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30163:6:164","memberName":"encode","nodeType":"MemberAccess","src":"30159:10:164","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30159:261:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83813,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"30136:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30136:294:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"30115:315:164"},{"assignments":[83833],"declarations":[{"constant":false,"id":83833,"mutability":"mutable","name":"hash","nameLocation":"30449:4:164","nodeType":"VariableDeclaration","scope":83929,"src":"30441:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30441:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83837,"initialValue":{"arguments":[{"id":83835,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83812,"src":"30473:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83834,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20869,"src":"30456:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":83836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30456:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"30441:43:164"},{"assignments":[83839],"declarations":[{"constant":false,"id":83839,"mutability":"mutable","name":"signer","nameLocation":"30503:6:164","nodeType":"VariableDeclaration","scope":83929,"src":"30495:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83838,"name":"address","nodeType":"ElementaryTypeName","src":"30495:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83847,"initialValue":{"arguments":[{"id":83842,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83833,"src":"30526:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83843,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83676,"src":"30532:3:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83844,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83678,"src":"30537:3:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83845,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83680,"src":"30542:3:164","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":83840,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"30512:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$9016_$","typeString":"type(library ECDSA)"}},"id":83841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30518:7:164","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":8938,"src":"30512:13:164","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":83846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30512:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"30495:51:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83849,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83839,"src":"30564:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83850,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"30574:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30564:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":83853,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83839,"src":"30600:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83854,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"30608:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":83852,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77377,"src":"30586:13:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":83855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30586:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83848,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30556:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30556:64:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83857,"nodeType":"ExpressionStatement","src":"30556:64:164"},{"assignments":[83860],"declarations":[{"constant":false,"id":83860,"mutability":"mutable","name":"_wrappedVara","nameLocation":"30644:12:164","nodeType":"VariableDeclaration","scope":83929,"src":"30631:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"},"typeName":{"id":83859,"nodeType":"UserDefinedTypeName","pathNode":{"id":83858,"name":"IWrappedVara","nameLocations":["30631:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":77807,"src":"30631:12:164"},"referencedDeclaration":77807,"src":"30631:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":83866,"initialValue":{"arguments":[{"expression":{"expression":{"id":83862,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83703,"src":"30672:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30679:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"30672:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30693:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"30672:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83861,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"30659:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77807_$","typeString":"type(contract IWrappedVara)"}},"id":83865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30659:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"30631:74:164"},{"assignments":[83868],"declarations":[{"constant":false,"id":83868,"mutability":"mutable","name":"fee","nameLocation":"30724:3:164","nodeType":"VariableDeclaration","scope":83929,"src":"30716:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83867,"name":"uint256","nodeType":"ElementaryTypeName","src":"30716:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83876,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83869,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83703,"src":"30742:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30749:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"30742:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30762:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"30742:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83872,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83703,"src":"30793:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30800:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"30793:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30813:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86153,"src":"30793:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30742:100:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30716:126:164"},{"clauses":[{"block":{"id":83890,"nodeType":"Block","src":"30934:2:164","statements":[]},"errorName":"","id":83891,"nodeType":"TryCatchClause","src":"30934:2:164"},{"block":{"id":83892,"nodeType":"Block","src":"30943:2:164","statements":[]},"errorName":"","id":83893,"nodeType":"TryCatchClause","src":"30937:8:164"}],"externalCall":{"arguments":[{"id":83879,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"30876:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83882,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"30896:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":83881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30888:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83880,"name":"address","nodeType":"ElementaryTypeName","src":"30888:7:164","typeDescriptions":{}}},"id":83883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30888:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83884,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83868,"src":"30903:3:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83885,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83674,"src":"30908:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83886,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83682,"src":"30919:3:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83887,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83684,"src":"30924:3:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83888,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83686,"src":"30929:3:164","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":83877,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83860,"src":"30856:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":83878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30869:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"30856:19:164","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":83889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30856:77:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83894,"nodeType":"TryStatement","src":"30852:93:164"},{"assignments":[83896],"declarations":[{"constant":false,"id":83896,"mutability":"mutable","name":"success","nameLocation":"30959:7:164","nodeType":"VariableDeclaration","scope":83929,"src":"30954:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83895,"name":"bool","nodeType":"ElementaryTypeName","src":"30954:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83906,"initialValue":{"arguments":[{"id":83899,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"30995:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83902,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31015:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":83901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31007:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83900,"name":"address","nodeType":"ElementaryTypeName","src":"31007:7:164","typeDescriptions":{}}},"id":83903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31007:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83904,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83868,"src":"31022:3:164","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":83897,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83860,"src":"30969:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":83898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30982:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"30969:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":83905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30969:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30954:72:164"},{"expression":{"arguments":[{"id":83908,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83896,"src":"31044:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83909,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77382,"src":"31053:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31053:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83907,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31036:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31036:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83912,"nodeType":"ExpressionStatement","src":"31036:38:164"},{"expression":{"id":83923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":83913,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83703,"src":"31085:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31092:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"31085:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31105:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"31085:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83919,"indexExpression":{"id":83916,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83669,"src":"31111:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31085:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":83920,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"31122:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":83921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31127:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"31122:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86085_$","typeString":"type(enum Gear.CodeState)"}},"id":83922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31137:19:164","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":86082,"src":"31122:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"src":"31085:71:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"id":83924,"nodeType":"ExpressionStatement","src":"31085:71:164"},{"eventCall":{"arguments":[{"id":83926,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83669,"src":"31196:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83925,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77296,"src":"31172:23:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31172:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83928,"nodeType":"EmitStatement","src":"31167:37:164"}]},"baseFunctions":[77705],"documentation":{"id":83665,"nodeType":"StructuredDocumentation","src":"27292:1496:164","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":83689,"kind":"modifierInvocation","modifierName":{"id":83688,"name":"whenNotPaused","nameLocations":["29089:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"29089:13:164"},"nodeType":"ModifierInvocation","src":"29089:13:164"}],"name":"requestCodeValidationOnBehalf","nameLocation":"28802:29:164","parameters":{"id":83687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83667,"mutability":"mutable","name":"_requester","nameLocation":"28849:10:164","nodeType":"VariableDeclaration","scope":83930,"src":"28841:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83666,"name":"address","nodeType":"ElementaryTypeName","src":"28841:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83669,"mutability":"mutable","name":"_codeId","nameLocation":"28877:7:164","nodeType":"VariableDeclaration","scope":83930,"src":"28869:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83668,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28869:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83672,"mutability":"mutable","name":"_blobHashes","nameLocation":"28913:11:164","nodeType":"VariableDeclaration","scope":83930,"src":"28894:30:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83670,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28894:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83671,"nodeType":"ArrayTypeName","src":"28894:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":83674,"mutability":"mutable","name":"_deadline","nameLocation":"28942:9:164","nodeType":"VariableDeclaration","scope":83930,"src":"28934:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83673,"name":"uint256","nodeType":"ElementaryTypeName","src":"28934:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83676,"mutability":"mutable","name":"_v1","nameLocation":"28967:3:164","nodeType":"VariableDeclaration","scope":83930,"src":"28961:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83675,"name":"uint8","nodeType":"ElementaryTypeName","src":"28961:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83678,"mutability":"mutable","name":"_r1","nameLocation":"28988:3:164","nodeType":"VariableDeclaration","scope":83930,"src":"28980:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28980:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83680,"mutability":"mutable","name":"_s1","nameLocation":"29009:3:164","nodeType":"VariableDeclaration","scope":83930,"src":"29001:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83679,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29001:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83682,"mutability":"mutable","name":"_v2","nameLocation":"29028:3:164","nodeType":"VariableDeclaration","scope":83930,"src":"29022:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83681,"name":"uint8","nodeType":"ElementaryTypeName","src":"29022:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83684,"mutability":"mutable","name":"_r2","nameLocation":"29049:3:164","nodeType":"VariableDeclaration","scope":83930,"src":"29041:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29041:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83686,"mutability":"mutable","name":"_s2","nameLocation":"29070:3:164","nodeType":"VariableDeclaration","scope":83930,"src":"29062:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83685,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29062:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"28831:248:164"},"returnParameters":{"id":83690,"nodeType":"ParameterList","parameters":[],"src":"29103:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83975,"nodeType":"FunctionDefinition","src":"32291:396:164","nodes":[],"body":{"id":83974,"nodeType":"Block","src":"32445:242:164","nodes":[],"statements":[{"assignments":[83945,null],"declarations":[{"constant":false,"id":83945,"mutability":"mutable","name":"mirror","nameLocation":"32464:6:164","nodeType":"VariableDeclaration","scope":83974,"src":"32456:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83944,"name":"address","nodeType":"ElementaryTypeName","src":"32456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":83951,"initialValue":{"arguments":[{"id":83947,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83933,"src":"32490:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83948,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83935,"src":"32499:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":83949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32506:4:164","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":83946,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84502,"src":"32475:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":83950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32475:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"32455:56:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83956,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83937,"src":"32562:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32594:1:164","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":83958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32586:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83957,"name":"address","nodeType":"ElementaryTypeName","src":"32586:7:164","typeDescriptions":{}}},"id":83960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32586:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"32562:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83964,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83937,"src":"32612:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"32562:70:164","trueExpression":{"expression":{"id":83962,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"32599:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32603:6:164","memberName":"sender","nodeType":"MemberAccess","src":"32599:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83966,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82794,"src":"32634:10:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":83967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32634:12:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":83968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32648:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":83969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32654:1:164","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":83953,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83945,"src":"32530:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83952,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"32522:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77166_$","typeString":"type(contract IMirror)"}},"id":83954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32522:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":83955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32551:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":77156,"src":"32522:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":83970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32522:134:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83971,"nodeType":"ExpressionStatement","src":"32522:134:164"},{"expression":{"id":83972,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83945,"src":"32674:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":83943,"id":83973,"nodeType":"Return","src":"32667:13:164"}]},"baseFunctions":[77717],"documentation":{"id":83931,"nodeType":"StructuredDocumentation","src":"31217:1069:164","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":83940,"kind":"modifierInvocation","modifierName":{"id":83939,"name":"whenNotPaused","nameLocations":["32401:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"32401:13:164"},"nodeType":"ModifierInvocation","src":"32401:13:164"}],"name":"createProgram","nameLocation":"32300:13:164","parameters":{"id":83938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83933,"mutability":"mutable","name":"_codeId","nameLocation":"32322:7:164","nodeType":"VariableDeclaration","scope":83975,"src":"32314:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32314:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83935,"mutability":"mutable","name":"_salt","nameLocation":"32339:5:164","nodeType":"VariableDeclaration","scope":83975,"src":"32331:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83934,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32331:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83937,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"32354:20:164","nodeType":"VariableDeclaration","scope":83975,"src":"32346:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83936,"name":"address","nodeType":"ElementaryTypeName","src":"32346:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32313:62:164"},"returnParameters":{"id":83943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83975,"src":"32432:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83941,"name":"address","nodeType":"ElementaryTypeName","src":"32432:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32431:9:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84080,"nodeType":"FunctionDefinition","src":"34160:1031:164","nodes":[],"body":{"id":84079,"nodeType":"Block","src":"34465:726:164","nodes":[],"statements":[{"assignments":[84000,84003],"declarations":[{"constant":false,"id":84000,"mutability":"mutable","name":"mirror","nameLocation":"34484:6:164","nodeType":"VariableDeclaration","scope":84079,"src":"34476:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83999,"name":"address","nodeType":"ElementaryTypeName","src":"34476:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84003,"mutability":"mutable","name":"router","nameLocation":"34508:6:164","nodeType":"VariableDeclaration","scope":84079,"src":"34492:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84002,"nodeType":"UserDefinedTypeName","pathNode":{"id":84001,"name":"Storage","nameLocations":["34492:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"34492:7:164"},"referencedDeclaration":77264,"src":"34492:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84009,"initialValue":{"arguments":[{"id":84005,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83978,"src":"34533:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84006,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83980,"src":"34542:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":84007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"34549:4:164","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":84004,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84502,"src":"34518:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":84008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34518:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"34475:79:164"},{"assignments":[84012],"declarations":[{"constant":false,"id":84012,"mutability":"mutable","name":"_wrappedVara","nameLocation":"34578:12:164","nodeType":"VariableDeclaration","scope":84079,"src":"34565:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"},"typeName":{"id":84011,"nodeType":"UserDefinedTypeName","pathNode":{"id":84010,"name":"IWrappedVara","nameLocations":["34565:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":77807,"src":"34565:12:164"},"referencedDeclaration":77807,"src":"34565:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":84018,"initialValue":{"arguments":[{"expression":{"expression":{"id":84014,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84003,"src":"34606:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34613:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"34606:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34627:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"34606:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84013,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"34593:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77807_$","typeString":"type(contract IWrappedVara)"}},"id":84017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34593:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"34565:74:164"},{"clauses":[{"block":{"id":84033,"nodeType":"Block","src":"34751:2:164","statements":[]},"errorName":"","id":84034,"nodeType":"TryCatchClause","src":"34751:2:164"},{"block":{"id":84035,"nodeType":"Block","src":"34760:2:164","statements":[]},"errorName":"","id":84036,"nodeType":"TryCatchClause","src":"34754:8:164"}],"externalCall":{"arguments":[{"expression":{"id":84021,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"34674:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34678:6:164","memberName":"sender","nodeType":"MemberAccess","src":"34674:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84025,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"34694:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":84024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34686:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84023,"name":"address","nodeType":"ElementaryTypeName","src":"34686:7:164","typeDescriptions":{}}},"id":84026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34686:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84027,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83984,"src":"34701:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84028,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83986,"src":"34728:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84029,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83988,"src":"34739:2:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":84030,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"34743:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84031,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83992,"src":"34747:2:164","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":84019,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84012,"src":"34654:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":84020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34667:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"34654:19:164","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":84032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34654:96:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84037,"nodeType":"TryStatement","src":"34650:112:164"},{"assignments":[84039],"declarations":[{"constant":false,"id":84039,"mutability":"mutable","name":"success","nameLocation":"34776:7:164","nodeType":"VariableDeclaration","scope":84079,"src":"34771:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84038,"name":"bool","nodeType":"ElementaryTypeName","src":"34771:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84050,"initialValue":{"arguments":[{"expression":{"id":84042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"34812:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34816:6:164","memberName":"sender","nodeType":"MemberAccess","src":"34812:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84046,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"34832:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":84045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34824:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84044,"name":"address","nodeType":"ElementaryTypeName","src":"34824:7:164","typeDescriptions":{}}},"id":84047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34824:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84048,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83984,"src":"34839:25:164","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":84040,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84012,"src":"34786:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":84041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34799:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"34786:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":84049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34786:79:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"34771:94:164"},{"expression":{"arguments":[{"id":84052,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84039,"src":"34883:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84053,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77382,"src":"34892:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34892:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84051,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"34875:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34875:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84056,"nodeType":"ExpressionStatement","src":"34875:38:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":84066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84061,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83982,"src":"34981:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":84064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35013:1:164","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":84063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35005:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84062,"name":"address","nodeType":"ElementaryTypeName","src":"35005:7:164","typeDescriptions":{}}},"id":84065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35005:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"34981:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84069,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83982,"src":"35031:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"34981:70:164","trueExpression":{"expression":{"id":84067,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35018:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35022:6:164","memberName":"sender","nodeType":"MemberAccess","src":"35018:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84071,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82794,"src":"35069:10:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":84072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35069:12:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":84073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35099:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":84074,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83984,"src":"35121:25:164","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":84058,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84000,"src":"34932:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84057,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"34924:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77166_$","typeString":"type(contract IMirror)"}},"id":84059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34924:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":84060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34953:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":77156,"src":"34924:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":84075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34924:236:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84076,"nodeType":"ExpressionStatement","src":"34924:236:164"},{"expression":{"id":84077,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84000,"src":"35178:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":83998,"id":84078,"nodeType":"Return","src":"35171:13:164"}]},"baseFunctions":[77739],"documentation":{"id":83976,"nodeType":"StructuredDocumentation","src":"32693:1462:164","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":83995,"kind":"modifierInvocation","modifierName":{"id":83994,"name":"whenNotPaused","nameLocations":["34433:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"34433:13:164"},"nodeType":"ModifierInvocation","src":"34433:13:164"}],"name":"createProgramWithExecutableBalance","nameLocation":"34169:34:164","parameters":{"id":83993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83978,"mutability":"mutable","name":"_codeId","nameLocation":"34221:7:164","nodeType":"VariableDeclaration","scope":84080,"src":"34213:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34213:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83980,"mutability":"mutable","name":"_salt","nameLocation":"34246:5:164","nodeType":"VariableDeclaration","scope":84080,"src":"34238:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34238:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83982,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"34269:20:164","nodeType":"VariableDeclaration","scope":84080,"src":"34261:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83981,"name":"address","nodeType":"ElementaryTypeName","src":"34261:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83984,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"34307:25:164","nodeType":"VariableDeclaration","scope":84080,"src":"34299:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83983,"name":"uint128","nodeType":"ElementaryTypeName","src":"34299:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83986,"mutability":"mutable","name":"_deadline","nameLocation":"34350:9:164","nodeType":"VariableDeclaration","scope":84080,"src":"34342:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83985,"name":"uint256","nodeType":"ElementaryTypeName","src":"34342:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83988,"mutability":"mutable","name":"_v","nameLocation":"34375:2:164","nodeType":"VariableDeclaration","scope":84080,"src":"34369:8:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83987,"name":"uint8","nodeType":"ElementaryTypeName","src":"34369:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83990,"mutability":"mutable","name":"_r","nameLocation":"34395:2:164","nodeType":"VariableDeclaration","scope":84080,"src":"34387:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34387:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83992,"mutability":"mutable","name":"_s","nameLocation":"34415:2:164","nodeType":"VariableDeclaration","scope":84080,"src":"34407:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83991,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34407:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34203:220:164"},"returnParameters":{"id":83998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84080,"src":"34456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83996,"name":"address","nodeType":"ElementaryTypeName","src":"34456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34455:9:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84126,"nodeType":"FunctionDefinition","src":"36353:448:164","nodes":[],"body":{"id":84125,"nodeType":"Block","src":"36556:245:164","nodes":[],"statements":[{"assignments":[84097,null],"declarations":[{"constant":false,"id":84097,"mutability":"mutable","name":"mirror","nameLocation":"36575:6:164","nodeType":"VariableDeclaration","scope":84125,"src":"36567:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84096,"name":"address","nodeType":"ElementaryTypeName","src":"36567:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":84103,"initialValue":{"arguments":[{"id":84099,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84083,"src":"36601:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84100,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84085,"src":"36610:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":84101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36617:5:164","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":84098,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84502,"src":"36586:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":84102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36586:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"36566:57:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":84113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84108,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84087,"src":"36674:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":84111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36706:1:164","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":84110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36698:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84109,"name":"address","nodeType":"ElementaryTypeName","src":"36698:7:164","typeDescriptions":{}}},"id":84112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36698:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"36674:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84116,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84087,"src":"36724:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"36674:70:164","trueExpression":{"expression":{"id":84114,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36711:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36715:6:164","memberName":"sender","nodeType":"MemberAccess","src":"36711:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84118,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84089,"src":"36746:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":84119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36761:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":84120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36768:1:164","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":84105,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84097,"src":"36642:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84104,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"36634:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77166_$","typeString":"type(contract IMirror)"}},"id":84106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36634:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":84107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36663:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":77156,"src":"36634:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":84121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36634:136:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84122,"nodeType":"ExpressionStatement","src":"36634:136:164"},{"expression":{"id":84123,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84097,"src":"36788:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":84095,"id":84124,"nodeType":"Return","src":"36781:13:164"}]},"baseFunctions":[77753],"documentation":{"id":84081,"nodeType":"StructuredDocumentation","src":"35197:1151:164","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":84092,"kind":"modifierInvocation","modifierName":{"id":84091,"name":"whenNotPaused","nameLocations":["36524:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"36524:13:164"},"nodeType":"ModifierInvocation","src":"36524:13:164"}],"name":"createProgramWithAbiInterface","nameLocation":"36362:29:164","parameters":{"id":84090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84083,"mutability":"mutable","name":"_codeId","nameLocation":"36409:7:164","nodeType":"VariableDeclaration","scope":84126,"src":"36401:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36401:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84085,"mutability":"mutable","name":"_salt","nameLocation":"36434:5:164","nodeType":"VariableDeclaration","scope":84126,"src":"36426:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84084,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36426:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84087,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"36457:20:164","nodeType":"VariableDeclaration","scope":84126,"src":"36449:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84086,"name":"address","nodeType":"ElementaryTypeName","src":"36449:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84089,"mutability":"mutable","name":"_abiInterface","nameLocation":"36495:13:164","nodeType":"VariableDeclaration","scope":84126,"src":"36487:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84088,"name":"address","nodeType":"ElementaryTypeName","src":"36487:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36391:123:164"},"returnParameters":{"id":84095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84126,"src":"36547:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84093,"name":"address","nodeType":"ElementaryTypeName","src":"36547:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36546:9:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84232,"nodeType":"FunctionDefinition","src":"38357:1080:164","nodes":[],"body":{"id":84231,"nodeType":"Block","src":"38708:729:164","nodes":[],"statements":[{"assignments":[84153,84156],"declarations":[{"constant":false,"id":84153,"mutability":"mutable","name":"mirror","nameLocation":"38727:6:164","nodeType":"VariableDeclaration","scope":84231,"src":"38719:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84152,"name":"address","nodeType":"ElementaryTypeName","src":"38719:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84156,"mutability":"mutable","name":"router","nameLocation":"38751:6:164","nodeType":"VariableDeclaration","scope":84231,"src":"38735:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84155,"nodeType":"UserDefinedTypeName","pathNode":{"id":84154,"name":"Storage","nameLocations":["38735:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"38735:7:164"},"referencedDeclaration":77264,"src":"38735:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84162,"initialValue":{"arguments":[{"id":84158,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84129,"src":"38776:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84159,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84131,"src":"38785:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":84160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"38792:5:164","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":84157,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84502,"src":"38761:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":84161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38761:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"38718:80:164"},{"assignments":[84165],"declarations":[{"constant":false,"id":84165,"mutability":"mutable","name":"_wrappedVara","nameLocation":"38822:12:164","nodeType":"VariableDeclaration","scope":84231,"src":"38809:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"},"typeName":{"id":84164,"nodeType":"UserDefinedTypeName","pathNode":{"id":84163,"name":"IWrappedVara","nameLocations":["38809:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":77807,"src":"38809:12:164"},"referencedDeclaration":77807,"src":"38809:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":84171,"initialValue":{"arguments":[{"expression":{"expression":{"id":84167,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84156,"src":"38850:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38857:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"38850:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38871:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"38850:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84166,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"38837:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77807_$","typeString":"type(contract IWrappedVara)"}},"id":84170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38837:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"38809:74:164"},{"clauses":[{"block":{"id":84186,"nodeType":"Block","src":"38995:2:164","statements":[]},"errorName":"","id":84187,"nodeType":"TryCatchClause","src":"38995:2:164"},{"block":{"id":84188,"nodeType":"Block","src":"39004:2:164","statements":[]},"errorName":"","id":84189,"nodeType":"TryCatchClause","src":"38998:8:164"}],"externalCall":{"arguments":[{"expression":{"id":84174,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"38918:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38922:6:164","memberName":"sender","nodeType":"MemberAccess","src":"38918:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84178,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"38938:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":84177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"38930:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84176,"name":"address","nodeType":"ElementaryTypeName","src":"38930:7:164","typeDescriptions":{}}},"id":84179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38930:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84180,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84137,"src":"38945:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84181,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84139,"src":"38972:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84182,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84141,"src":"38983:2:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":84183,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84143,"src":"38987:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84184,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84145,"src":"38991:2:164","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":84172,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84165,"src":"38898:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":84173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38911:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"38898:19:164","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":84185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38898:96:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84190,"nodeType":"TryStatement","src":"38894:112:164"},{"assignments":[84192],"declarations":[{"constant":false,"id":84192,"mutability":"mutable","name":"success","nameLocation":"39020:7:164","nodeType":"VariableDeclaration","scope":84231,"src":"39015:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84191,"name":"bool","nodeType":"ElementaryTypeName","src":"39015:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84203,"initialValue":{"arguments":[{"expression":{"id":84195,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39056:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39060:6:164","memberName":"sender","nodeType":"MemberAccess","src":"39056:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84199,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39076:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":84198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39068:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84197,"name":"address","nodeType":"ElementaryTypeName","src":"39068:7:164","typeDescriptions":{}}},"id":84200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39068:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84201,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84137,"src":"39083:25:164","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":84193,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84165,"src":"39030:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":84194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39043:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"39030:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":84202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39030:79:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"39015:94:164"},{"expression":{"arguments":[{"id":84205,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84192,"src":"39127:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84206,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77382,"src":"39136:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39136:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84204,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39119:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39119:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84209,"nodeType":"ExpressionStatement","src":"39119:38:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":84219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84214,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84133,"src":"39225:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":84217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39257:1:164","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":84216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39249:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84215,"name":"address","nodeType":"ElementaryTypeName","src":"39249:7:164","typeDescriptions":{}}},"id":84218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39249:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"39225:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84222,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84133,"src":"39275:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"39225:70:164","trueExpression":{"expression":{"id":84220,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39262:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39266:6:164","memberName":"sender","nodeType":"MemberAccess","src":"39262:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84224,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84135,"src":"39313:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":84225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"39344:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":84226,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84137,"src":"39367:25:164","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":84211,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84153,"src":"39176:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84210,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"39168:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77166_$","typeString":"type(contract IMirror)"}},"id":84212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39168:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":84213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39197:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":77156,"src":"39168:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":84227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39168:238:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84228,"nodeType":"ExpressionStatement","src":"39168:238:164"},{"expression":{"id":84229,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84153,"src":"39424:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":84151,"id":84230,"nodeType":"Return","src":"39417:13:164"}]},"baseFunctions":[77777],"documentation":{"id":84127,"nodeType":"StructuredDocumentation","src":"36807:1545:164","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":84148,"kind":"modifierInvocation","modifierName":{"id":84147,"name":"whenNotPaused","nameLocations":["38676:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"38676:13:164"},"nodeType":"ModifierInvocation","src":"38676:13:164"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"38366:49:164","parameters":{"id":84146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84129,"mutability":"mutable","name":"_codeId","nameLocation":"38433:7:164","nodeType":"VariableDeclaration","scope":84232,"src":"38425:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38425:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84131,"mutability":"mutable","name":"_salt","nameLocation":"38458:5:164","nodeType":"VariableDeclaration","scope":84232,"src":"38450:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38450:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84133,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"38481:20:164","nodeType":"VariableDeclaration","scope":84232,"src":"38473:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84132,"name":"address","nodeType":"ElementaryTypeName","src":"38473:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84135,"mutability":"mutable","name":"_abiInterface","nameLocation":"38519:13:164","nodeType":"VariableDeclaration","scope":84232,"src":"38511:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84134,"name":"address","nodeType":"ElementaryTypeName","src":"38511:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84137,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"38550:25:164","nodeType":"VariableDeclaration","scope":84232,"src":"38542:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84136,"name":"uint128","nodeType":"ElementaryTypeName","src":"38542:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":84139,"mutability":"mutable","name":"_deadline","nameLocation":"38593:9:164","nodeType":"VariableDeclaration","scope":84232,"src":"38585:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84138,"name":"uint256","nodeType":"ElementaryTypeName","src":"38585:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":84141,"mutability":"mutable","name":"_v","nameLocation":"38618:2:164","nodeType":"VariableDeclaration","scope":84232,"src":"38612:8:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":84140,"name":"uint8","nodeType":"ElementaryTypeName","src":"38612:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":84143,"mutability":"mutable","name":"_r","nameLocation":"38638:2:164","nodeType":"VariableDeclaration","scope":84232,"src":"38630:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38630:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84145,"mutability":"mutable","name":"_s","nameLocation":"38658:2:164","nodeType":"VariableDeclaration","scope":84232,"src":"38650:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38650:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"38415:251:164"},"returnParameters":{"id":84151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84232,"src":"38699:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84149,"name":"address","nodeType":"ElementaryTypeName","src":"38699:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38698:9:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84399,"nodeType":"FunctionDefinition","src":"39898:2151:164","nodes":[],"body":{"id":84398,"nodeType":"Block","src":"40074:1975:164","nodes":[],"statements":[{"assignments":[84249],"declarations":[{"constant":false,"id":84249,"mutability":"mutable","name":"router","nameLocation":"40100:6:164","nodeType":"VariableDeclaration","scope":84398,"src":"40084:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84248,"nodeType":"UserDefinedTypeName","pathNode":{"id":84247,"name":"Storage","nameLocations":["40084:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"40084:7:164"},"referencedDeclaration":77264,"src":"40084:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84252,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":84250,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"40109:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":84251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40109:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"40084:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84254,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"40137:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40144:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"40137:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40157:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86100,"src":"40137:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":84259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40173:1:164","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":84258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"40165:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":84257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40165:7:164","typeDescriptions":{}}},"id":84260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40165:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40137:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84262,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77346,"src":"40177:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40177:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40129:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40129:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84265,"nodeType":"ExpressionStatement","src":"40129:82:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84266,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"40375:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40382:8:164","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":77235,"src":"40375:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":84268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40394:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"40375:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84293,"nodeType":"IfStatement","src":"40371:295:164","trueBody":{"id":84292,"nodeType":"Block","src":"40397:269:164","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":84273,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"40443:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40450:9:164","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":86015,"src":"40443:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84275,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"40461:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40468:6:164","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":86024,"src":"40461:13:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":84271,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"40419:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40424:18:164","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":86548,"src":"40419:23:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":84277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40419:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84278,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77384,"src":"40477:24:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40477:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40411:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40411:93:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84281,"nodeType":"ExpressionStatement","src":"40411:93:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84283,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"40588:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40594:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"40588:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":84285,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"40606:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40613:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86018,"src":"40606:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"40588:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84288,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77386,"src":"40629:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40629:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84282,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40580:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40580:75:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84291,"nodeType":"ExpressionStatement","src":"40580:75:164"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84295,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"40779:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40786:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77243,"src":"40779:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":84297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40807:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86088,"src":"40779:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":84298,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"40815:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40822:26:164","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":86021,"src":"40815:33:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40779:69:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84301,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77388,"src":"40850:33:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40850:35:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40758:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40758:137:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84304,"nodeType":"ExpressionStatement","src":"40758:137:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":84311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84306,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"40914:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40921:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77243,"src":"40914:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":84308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40942:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86090,"src":"40914:37:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":84309,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"40955:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40962:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86018,"src":"40955:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"40914:62:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84312,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77390,"src":"40978:22:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40978:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84305,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40906:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40906:97:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84315,"nodeType":"ExpressionStatement","src":"40906:97:164"},{"assignments":[84317],"declarations":[{"constant":false,"id":84317,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"41022:20:164","nodeType":"VariableDeclaration","scope":84398,"src":"41014:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41014:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84322,"initialValue":{"arguments":[{"id":84319,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"41058:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84320,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41066:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":84318,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84581,"src":"41045:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77264_storage_ptr_$_t_struct$_BatchCommitment_$86045_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":84321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41045:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41014:59:164"},{"assignments":[84324],"declarations":[{"constant":false,"id":84324,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"41091:20:164","nodeType":"VariableDeclaration","scope":84398,"src":"41083:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41083:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84329,"initialValue":{"arguments":[{"id":84326,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"41127:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84327,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41135:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":84325,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84723,"src":"41114:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77264_storage_ptr_$_t_struct$_BatchCommitment_$86045_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":84328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41114:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41083:59:164"},{"assignments":[84331],"declarations":[{"constant":false,"id":84331,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"41160:22:164","nodeType":"VariableDeclaration","scope":84398,"src":"41152:30:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41152:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84336,"initialValue":{"arguments":[{"id":84333,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"41200:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84334,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41208:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":84332,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84880,"src":"41185:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77264_storage_ptr_$_t_struct$_BatchCommitment_$86045_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":84335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41185:30:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41152:63:164"},{"assignments":[84338],"declarations":[{"constant":false,"id":84338,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"41233:25:164","nodeType":"VariableDeclaration","scope":84398,"src":"41225:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41225:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84343,"initialValue":{"arguments":[{"id":84340,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"41279:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84341,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41287:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":84339,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85028,"src":"41261:17:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77264_storage_ptr_$_t_struct$_BatchCommitment_$86045_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":84342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41261:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41225:69:164"},{"assignments":[84345],"declarations":[{"constant":false,"id":84345,"mutability":"mutable","name":"_batchHash","nameLocation":"41313:10:164","nodeType":"VariableDeclaration","scope":84398,"src":"41305:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41305:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84361,"initialValue":{"arguments":[{"expression":{"id":84348,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41364:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41371:9:164","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":86015,"src":"41364:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84350,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41394:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41401:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86018,"src":"41394:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":84352,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41429:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41436:26:164","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":86021,"src":"41429:33:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84354,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41476:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41483:6:164","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":86024,"src":"41476:13:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":84356,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84317,"src":"41503:20:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84357,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84324,"src":"41537:20:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84358,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84331,"src":"41571:22:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84359,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84338,"src":"41607:25:164","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":84346,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"41326:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41331:19:164","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86392,"src":"41326:24:164","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":84360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41326:316:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41305:337:164"},{"expression":{"id":84368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":84362,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"41653:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41660:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77243,"src":"41653:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":84366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41681:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86088,"src":"41653:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84367,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84345,"src":"41688:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41653:45:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84369,"nodeType":"ExpressionStatement","src":"41653:45:164"},{"expression":{"id":84377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":84370,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"41708:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41715:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77243,"src":"41708:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86091_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":84374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41736:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86090,"src":"41708:37:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":84375,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41748:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41755:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86018,"src":"41748:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"41708:61:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":84378,"nodeType":"ExpressionStatement","src":"41708:61:164"},{"eventCall":{"arguments":[{"id":84380,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84345,"src":"41800:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84379,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77269,"src":"41785:14:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":84381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41785:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84382,"nodeType":"EmitStatement","src":"41780:31:164"},{"expression":{"arguments":[{"arguments":[{"id":84386,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"41886:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84387,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82284,"src":"41894:17:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84388,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84345,"src":"41913:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84389,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84239,"src":"41925:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"}},{"id":84390,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84242,"src":"41941:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":84391,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84236,"src":"41954:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41961:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86018,"src":"41954:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$86261","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":84384,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"41843:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41848:20:164","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":86834,"src":"41843:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77264_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$86261_$_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":84393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41843:146:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84394,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77418,"src":"42003:27:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42003:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84383,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"41822:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41822:220:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84397,"nodeType":"ExpressionStatement","src":"41822:220:164"}]},"baseFunctions":[77790],"documentation":{"id":84233,"nodeType":"StructuredDocumentation","src":"39443:450:164","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":84245,"kind":"modifierInvocation","modifierName":{"id":84244,"name":"nonReentrant","nameLocations":["40061:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":6525,"src":"40061:12:164"},"nodeType":"ModifierInvocation","src":"40061:12:164"}],"name":"commitBatch","nameLocation":"39907:11:164","parameters":{"id":84243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84236,"mutability":"mutable","name":"_batch","nameLocation":"39958:6:164","nodeType":"VariableDeclaration","scope":84399,"src":"39928:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84235,"nodeType":"UserDefinedTypeName","pathNode":{"id":84234,"name":"Gear.BatchCommitment","nameLocations":["39928:4:164","39933:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86045,"src":"39928:20:164"},"referencedDeclaration":86045,"src":"39928:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":84239,"mutability":"mutable","name":"_signatureType","nameLocation":"39993:14:164","nodeType":"VariableDeclaration","scope":84399,"src":"39974:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"},"typeName":{"id":84238,"nodeType":"UserDefinedTypeName","pathNode":{"id":84237,"name":"Gear.SignatureType","nameLocations":["39974:4:164","39979:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":86261,"src":"39974:18:164"},"referencedDeclaration":86261,"src":"39974:18:164","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86261","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":84242,"mutability":"mutable","name":"_signatures","nameLocation":"40034:11:164","nodeType":"VariableDeclaration","scope":84399,"src":"40017:28:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":84240,"name":"bytes","nodeType":"ElementaryTypeName","src":"40017:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":84241,"nodeType":"ArrayTypeName","src":"40017:7:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"39918:133:164"},"returnParameters":{"id":84246,"nodeType":"ParameterList","parameters":[],"src":"40074:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84502,"nodeType":"FunctionDefinition","src":"42093:934:164","nodes":[],"body":{"id":84501,"nodeType":"Block","src":"42207:820:164","nodes":[],"statements":[{"assignments":[84415],"declarations":[{"constant":false,"id":84415,"mutability":"mutable","name":"router","nameLocation":"42233:6:164","nodeType":"VariableDeclaration","scope":84501,"src":"42217:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84414,"nodeType":"UserDefinedTypeName","pathNode":{"id":84413,"name":"Storage","nameLocations":["42217:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"42217:7:164"},"referencedDeclaration":77264,"src":"42217:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84418,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":84416,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"42242:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":84417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42242:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"42217:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84420,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84415,"src":"42269:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42276:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"42269:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42289:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86100,"src":"42269:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":84425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42305:1:164","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":84424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42297:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":84423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42297:7:164","typeDescriptions":{}}},"id":84426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42297:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"42269:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84428,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77346,"src":"42309:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42309:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84419,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42261:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42261:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84431,"nodeType":"ExpressionStatement","src":"42261:82:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"},"id":84441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":84433,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84415,"src":"42362:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42369:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"42362:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42382:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"42362:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":84437,"indexExpression":{"id":84436,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84401,"src":"42388:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42362:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":84438,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"42400:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42405:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"42400:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86085_$","typeString":"type(enum Gear.CodeState)"}},"id":84440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42415:9:164","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":86084,"src":"42400:24:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"src":"42362:62:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84442,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77380,"src":"42426:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42426:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84432,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42354:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42354:91:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84445,"nodeType":"ExpressionStatement","src":"42354:91:164"},{"assignments":[84447],"declarations":[{"constant":false,"id":84447,"mutability":"mutable","name":"salt","nameLocation":"42614:4:164","nodeType":"VariableDeclaration","scope":84501,"src":"42606:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42606:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84453,"initialValue":{"arguments":[{"id":84450,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84401,"src":"42656:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84451,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"42665:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84448,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"42621:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":84449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42628:27:164","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62942,"src":"42621:34:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":84452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42621:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"42606:65:164"},{"assignments":[84455],"declarations":[{"constant":false,"id":84455,"mutability":"mutable","name":"actorId","nameLocation":"42689:7:164","nodeType":"VariableDeclaration","scope":84501,"src":"42681:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84454,"name":"address","nodeType":"ElementaryTypeName","src":"42681:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84474,"initialValue":{"condition":{"id":84456,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84405,"src":"42699:8:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":84469,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"42822:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":84468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42814:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84467,"name":"address","nodeType":"ElementaryTypeName","src":"42814:7:164","typeDescriptions":{}}},"id":84470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42814:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84471,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84447,"src":"42829:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84465,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85774,"src":"42788:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$85774_$","typeString":"type(library Clones)"}},"id":84466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42795:18:164","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":85543,"src":"42788:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":84472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42788:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"42699:135:164","trueExpression":{"arguments":[{"arguments":[{"id":84461,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"42761:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85378","typeString":"contract Router"}],"id":84460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42753:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84459,"name":"address","nodeType":"ElementaryTypeName","src":"42753:7:164","typeDescriptions":{}}},"id":84462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42753:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84463,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84447,"src":"42768:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84457,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85858,"src":"42722:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$85858_$","typeString":"type(library ClonesSmall)"}},"id":84458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42734:18:164","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":85796,"src":"42722:30:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":84464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42722:51:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"42681:153:164"},{"expression":{"id":84483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":84475,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84415,"src":"42845:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42852:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"42845:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42865:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86138,"src":"42845:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":84481,"indexExpression":{"id":84478,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84455,"src":"42874:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"42845:37:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84482,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84401,"src":"42885:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"42845:47:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84484,"nodeType":"ExpressionStatement","src":"42845:47:164"},{"expression":{"id":84490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"42902:35:164","subExpression":{"expression":{"expression":{"id":84485,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84415,"src":"42902:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42909:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"42902:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"42922:13:164","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":86141,"src":"42902:33:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84491,"nodeType":"ExpressionStatement","src":"42902:35:164"},{"eventCall":{"arguments":[{"id":84493,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84455,"src":"42968:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84494,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84401,"src":"42977:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84492,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77315,"src":"42953:14:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":84495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42953:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84496,"nodeType":"EmitStatement","src":"42948:37:164"},{"expression":{"components":[{"id":84497,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84455,"src":"43004:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84498,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84415,"src":"43013:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":84499,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"43003:17:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":84412,"id":84500,"nodeType":"Return","src":"42996:24:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"42102:14:164","parameters":{"id":84406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84401,"mutability":"mutable","name":"_codeId","nameLocation":"42125:7:164","nodeType":"VariableDeclaration","scope":84502,"src":"42117:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42117:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84403,"mutability":"mutable","name":"_salt","nameLocation":"42142:5:164","nodeType":"VariableDeclaration","scope":84502,"src":"42134:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42134:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84405,"mutability":"mutable","name":"_isSmall","nameLocation":"42154:8:164","nodeType":"VariableDeclaration","scope":84502,"src":"42149:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84404,"name":"bool","nodeType":"ElementaryTypeName","src":"42149:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42116:47:164"},"returnParameters":{"id":84412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84502,"src":"42181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84407,"name":"address","nodeType":"ElementaryTypeName","src":"42181:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84502,"src":"42190:15:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84410,"nodeType":"UserDefinedTypeName","pathNode":{"id":84409,"name":"Storage","nameLocations":["42190:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"42190:7:164"},"referencedDeclaration":77264,"src":"42190:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"42180:26:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84581,"nodeType":"FunctionDefinition","src":"43033:846:164","nodes":[],"body":{"id":84580,"nodeType":"Block","src":"43143:736:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84514,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84508,"src":"43161:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43168:15:164","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":86029,"src":"43161:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85997_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":84516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43184:6:164","memberName":"length","nodeType":"MemberAccess","src":"43161:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":84517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43194:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43161:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84519,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77392,"src":"43197:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43197:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84513,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43153:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43153:70:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84522,"nodeType":"ExpressionStatement","src":"43153:70:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84523,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84508,"src":"43238:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43245:15:164","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":86029,"src":"43238:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85997_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":84525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43261:6:164","memberName":"length","nodeType":"MemberAccess","src":"43238:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":84526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43271:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43238:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84533,"nodeType":"IfStatement","src":"43234:177:164","trueBody":{"id":84532,"nodeType":"Block","src":"43274:137:164","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":84529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43397:2:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":84528,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"43387:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":84530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43387:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84512,"id":84531,"nodeType":"Return","src":"43380:20:164"}]}},{"assignments":[84538],"declarations":[{"constant":false,"id":84538,"mutability":"mutable","name":"_commitment","nameLocation":"43451:11:164","nodeType":"VariableDeclaration","scope":84580,"src":"43421:41:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":84537,"nodeType":"UserDefinedTypeName","pathNode":{"id":84536,"name":"Gear.ChainCommitment","nameLocations":["43421:4:164","43426:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":85997,"src":"43421:20:164"},"referencedDeclaration":85997,"src":"43421:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":84543,"initialValue":{"baseExpression":{"expression":{"id":84539,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84508,"src":"43465:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43472:15:164","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":86029,"src":"43465:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85997_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":84542,"indexExpression":{"hexValue":"30","id":84541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43488:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43465:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"43421:69:164"},{"assignments":[84545],"declarations":[{"constant":false,"id":84545,"mutability":"mutable","name":"_transitionsHash","nameLocation":"43509:16:164","nodeType":"VariableDeclaration","scope":84580,"src":"43501:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43501:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84551,"initialValue":{"arguments":[{"id":84547,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84505,"src":"43547:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84548,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84538,"src":"43555:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43567:11:164","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":85990,"src":"43555:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86195_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86195_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":84546,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85148,"src":"43528:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77264_storage_ptr_$_t_array$_t_struct$_StateTransition_$86195_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":84550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43528:51:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43501:78:164"},{"eventCall":{"arguments":[{"expression":{"id":84553,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84538,"src":"43607:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43619:4:164","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":85993,"src":"43607:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84552,"name":"MBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77274,"src":"43595:11:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":84555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43595:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84556,"nodeType":"EmitStatement","src":"43590:34:164"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84557,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84538,"src":"43638:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43650:20:164","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":85996,"src":"43638:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":84561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43682:1:164","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":84560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43674:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":84559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43674:7:164","typeDescriptions":{}}},"id":84562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43674:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"43638:46:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84570,"nodeType":"IfStatement","src":"43634:127:164","trueBody":{"id":84569,"nodeType":"Block","src":"43686:75:164","statements":[{"eventCall":{"arguments":[{"expression":{"id":84565,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84538,"src":"43717:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43729:20:164","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":85996,"src":"43717:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84564,"name":"EBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"43705:11:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":84567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43705:45:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84568,"nodeType":"EmitStatement","src":"43700:50:164"}]}},{"expression":{"arguments":[{"id":84573,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84545,"src":"43803:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84574,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84538,"src":"43821:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43833:4:164","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":85993,"src":"43821:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84576,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84538,"src":"43839:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85997_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43851:20:164","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":85996,"src":"43839:32:164","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":84571,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"43778:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43783:19:164","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86288,"src":"43778:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":84578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43778:94:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84512,"id":84579,"nodeType":"Return","src":"43771:101:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"43042:12:164","parameters":{"id":84509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84505,"mutability":"mutable","name":"router","nameLocation":"43071:6:164","nodeType":"VariableDeclaration","scope":84581,"src":"43055:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84504,"nodeType":"UserDefinedTypeName","pathNode":{"id":84503,"name":"Storage","nameLocations":["43055:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"43055:7:164"},"referencedDeclaration":77264,"src":"43055:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84508,"mutability":"mutable","name":"_batch","nameLocation":"43109:6:164","nodeType":"VariableDeclaration","scope":84581,"src":"43079:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84507,"nodeType":"UserDefinedTypeName","pathNode":{"id":84506,"name":"Gear.BatchCommitment","nameLocations":["43079:4:164","43084:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86045,"src":"43079:20:164"},"referencedDeclaration":86045,"src":"43079:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43054:62:164"},"returnParameters":{"id":84512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84581,"src":"43134:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43134:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43133:9:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84723,"nodeType":"FunctionDefinition","src":"43885:1402:164","nodes":[],"body":{"id":84722,"nodeType":"Block","src":"43995:1292:164","nodes":[],"statements":[{"assignments":[84593],"declarations":[{"constant":false,"id":84593,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"44013:18:164","nodeType":"VariableDeclaration","scope":84722,"src":"44005:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84592,"name":"uint256","nodeType":"ElementaryTypeName","src":"44005:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84597,"initialValue":{"expression":{"expression":{"id":84594,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84587,"src":"44034:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44041:15:164","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":86034,"src":"44034:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$85984_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":84596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44057:6:164","memberName":"length","nodeType":"MemberAccess","src":"44034:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44005:58:164"},{"assignments":[84599],"declarations":[{"constant":false,"id":84599,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"44081:23:164","nodeType":"VariableDeclaration","scope":84722,"src":"44073:31:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84598,"name":"uint256","nodeType":"ElementaryTypeName","src":"44073:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84603,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84600,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84593,"src":"44107:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":84601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44128:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"44107:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44073:57:164"},{"assignments":[84605],"declarations":[{"constant":false,"id":84605,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"44148:18:164","nodeType":"VariableDeclaration","scope":84722,"src":"44140:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84604,"name":"uint256","nodeType":"ElementaryTypeName","src":"44140:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84610,"initialValue":{"arguments":[{"id":84608,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84599,"src":"44185:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84606,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"44169:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":84607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44176:8:164","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"44169:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":84609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44169:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44140:69:164"},{"assignments":[84612],"declarations":[{"constant":false,"id":84612,"mutability":"mutable","name":"offset","nameLocation":"44227:6:164","nodeType":"VariableDeclaration","scope":84722,"src":"44219:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84611,"name":"uint256","nodeType":"ElementaryTypeName","src":"44219:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84614,"initialValue":{"hexValue":"30","id":84613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44236:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"44219:18:164"},{"body":{"id":84713,"nodeType":"Block","src":"44297:884:164","statements":[{"assignments":[84629],"declarations":[{"constant":false,"id":84629,"mutability":"mutable","name":"_commitment","nameLocation":"44340:11:164","nodeType":"VariableDeclaration","scope":84713,"src":"44311:40:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":84628,"nodeType":"UserDefinedTypeName","pathNode":{"id":84627,"name":"Gear.CodeCommitment","nameLocations":["44311:4:164","44316:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":85984,"src":"44311:19:164"},"referencedDeclaration":85984,"src":"44311:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":84634,"initialValue":{"baseExpression":{"expression":{"id":84630,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84587,"src":"44354:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44361:15:164","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":86034,"src":"44354:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$85984_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":84633,"indexExpression":{"id":84632,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84616,"src":"44377:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44354:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"44311:68:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"},"id":84645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":84636,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84584,"src":"44419:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44426:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"44419:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44439:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"44419:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":84641,"indexExpression":{"expression":{"id":84639,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84629,"src":"44445:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44457:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85980,"src":"44445:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44419:41:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":84642,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"44464:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44469:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"44464:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86085_$","typeString":"type(enum Gear.CodeState)"}},"id":84644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44479:19:164","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":86082,"src":"44464:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"src":"44419:79:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84646,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77396,"src":"44516:26:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44516:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84635,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44394:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44394:164:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84649,"nodeType":"ExpressionStatement","src":"44394:164:164"},{"condition":{"expression":{"id":84650,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84629,"src":"44577:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44589:5:164","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":85983,"src":"44577:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":84681,"nodeType":"Block","src":"44762:81:164","statements":[{"expression":{"id":84679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"44780:48:164","subExpression":{"baseExpression":{"expression":{"expression":{"id":84673,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84584,"src":"44787:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44794:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"44787:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44807:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"44787:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":84678,"indexExpression":{"expression":{"id":84676,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84629,"src":"44813:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44825:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85980,"src":"44813:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"44787:41:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84680,"nodeType":"ExpressionStatement","src":"44780:48:164"}]},"id":84682,"nodeType":"IfStatement","src":"44573:270:164","trueBody":{"id":84672,"nodeType":"Block","src":"44596:160:164","statements":[{"expression":{"id":84663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":84652,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84584,"src":"44614:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44621:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"44614:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44634:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86133,"src":"44614:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86085_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":84659,"indexExpression":{"expression":{"id":84655,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84629,"src":"44640:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44652:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85980,"src":"44640:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"44614:41:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":84660,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"44658:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44663:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"44658:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86085_$","typeString":"type(enum Gear.CodeState)"}},"id":84662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44673:9:164","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":86084,"src":"44658:24:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"src":"44614:68:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86085","typeString":"enum Gear.CodeState"}},"id":84664,"nodeType":"ExpressionStatement","src":"44614:68:164"},{"expression":{"id":84670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"44700:41:164","subExpression":{"expression":{"expression":{"id":84665,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84584,"src":"44700:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44707:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"44700:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"44720:19:164","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":86144,"src":"44700:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84671,"nodeType":"ExpressionStatement","src":"44700:41:164"}]}},{"eventCall":{"arguments":[{"expression":{"id":84684,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84629,"src":"44879:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44891:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85980,"src":"44879:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84686,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84629,"src":"44895:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44907:5:164","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":85983,"src":"44895:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":84683,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77291,"src":"44862:16:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":84688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44862:51:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84689,"nodeType":"EmitStatement","src":"44857:56:164"},{"assignments":[84691],"declarations":[{"constant":false,"id":84691,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"44936:18:164","nodeType":"VariableDeclaration","scope":84713,"src":"44928:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44928:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84699,"initialValue":{"arguments":[{"expression":{"id":84694,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84629,"src":"44981:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44993:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85980,"src":"44981:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84696,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84629,"src":"44997:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85984_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45009:5:164","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":85983,"src":"44997:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":84692,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"44957:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44962:18:164","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86305,"src":"44957:23:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":84698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44957:58:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"44928:87:164"},{"expression":{"arguments":[{"id":84703,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84605,"src":"45055:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84704,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84612,"src":"45075:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84705,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84691,"src":"45083:18:164","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":84700,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"45029:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":84702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45036:18:164","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"45029:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":84706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45029:73:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84707,"nodeType":"ExpressionStatement","src":"45029:73:164"},{"id":84712,"nodeType":"UncheckedBlock","src":"45116:55:164","statements":[{"expression":{"id":84710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":84708,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84612,"src":"45144:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":84709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45154:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"45144:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84711,"nodeType":"ExpressionStatement","src":"45144:12:164"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84619,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84616,"src":"44268:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":84620,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84593,"src":"44272:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44268:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84714,"initializationExpression":{"assignments":[84616],"declarations":[{"constant":false,"id":84616,"mutability":"mutable","name":"i","nameLocation":"44261:1:164","nodeType":"VariableDeclaration","scope":84714,"src":"44253:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84615,"name":"uint256","nodeType":"ElementaryTypeName","src":"44253:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84618,"initialValue":{"hexValue":"30","id":84617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44265:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"44253:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":84623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"44292:3:164","subExpression":{"id":84622,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84616,"src":"44292:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84624,"nodeType":"ExpressionStatement","src":"44292:3:164"},"nodeType":"ForStatement","src":"44248:933:164"},{"expression":{"arguments":[{"id":84717,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84605,"src":"45233:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":84718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45253:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":84719,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84599,"src":"45256:23:164","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":84715,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"45198:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":84716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45205:27:164","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"45198:34:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":84720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45198:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84591,"id":84721,"nodeType":"Return","src":"45191:89:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"43894:12:164","parameters":{"id":84588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84584,"mutability":"mutable","name":"router","nameLocation":"43923:6:164","nodeType":"VariableDeclaration","scope":84723,"src":"43907:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84583,"nodeType":"UserDefinedTypeName","pathNode":{"id":84582,"name":"Storage","nameLocations":["43907:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"43907:7:164"},"referencedDeclaration":77264,"src":"43907:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84587,"mutability":"mutable","name":"_batch","nameLocation":"43961:6:164","nodeType":"VariableDeclaration","scope":84723,"src":"43931:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84586,"nodeType":"UserDefinedTypeName","pathNode":{"id":84585,"name":"Gear.BatchCommitment","nameLocations":["43931:4:164","43936:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86045,"src":"43931:20:164"},"referencedDeclaration":86045,"src":"43931:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43906:62:164"},"returnParameters":{"id":84591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84723,"src":"43986:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43986:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43985:9:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84880,"nodeType":"FunctionDefinition","src":"45329:1705:164","nodes":[],"body":{"id":84879,"nodeType":"Block","src":"45441:1593:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84735,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84729,"src":"45459:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45466:17:164","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":86039,"src":"45459:24:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86055_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":84737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45484:6:164","memberName":"length","nodeType":"MemberAccess","src":"45459:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":84738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45494:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"45459:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84740,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77398,"src":"45497:25:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45497:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84734,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45451:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45451:74:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84743,"nodeType":"ExpressionStatement","src":"45451:74:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84744,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84729,"src":"45540:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45547:17:164","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":86039,"src":"45540:24:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86055_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":84746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45565:6:164","memberName":"length","nodeType":"MemberAccess","src":"45540:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":84747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45575:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45540:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84754,"nodeType":"IfStatement","src":"45536:179:164","trueBody":{"id":84753,"nodeType":"Block","src":"45578:137:164","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":84750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45701:2:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":84749,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"45691:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":84751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45691:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84733,"id":84752,"nodeType":"Return","src":"45684:20:164"}]}},{"assignments":[84759],"declarations":[{"constant":false,"id":84759,"mutability":"mutable","name":"_commitment","nameLocation":"45757:11:164","nodeType":"VariableDeclaration","scope":84879,"src":"45725:43:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":84758,"nodeType":"UserDefinedTypeName","pathNode":{"id":84757,"name":"Gear.RewardsCommitment","nameLocations":["45725:4:164","45730:17:164"],"nodeType":"IdentifierPath","referencedDeclaration":86055,"src":"45725:22:164"},"referencedDeclaration":86055,"src":"45725:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":84764,"initialValue":{"baseExpression":{"expression":{"id":84760,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84729,"src":"45771:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45778:17:164","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":86039,"src":"45771:24:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86055_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":84763,"indexExpression":{"hexValue":"30","id":84762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45796:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45771:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"45725:73:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":84770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84766,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"45817:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45829:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86054,"src":"45817:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":84768,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84729,"src":"45841:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45848:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86018,"src":"45841:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"45817:45:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84771,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77400,"src":"45864:35:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45864:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84765,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45809:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45809:93:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84774,"nodeType":"ExpressionStatement","src":"45809:93:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":84781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84776,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"45920:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45932:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86054,"src":"45920:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":84778,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84726,"src":"45945:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45952:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"45945:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45965:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86104,"src":"45945:29:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"45920:54:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84782,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77402,"src":"45976:32:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45976:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84775,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45912:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45912:99:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84785,"nodeType":"ExpressionStatement","src":"45912:99:164"},{"assignments":[84787],"declarations":[{"constant":false,"id":84787,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"46030:18:164","nodeType":"VariableDeclaration","scope":84879,"src":"46022:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84786,"name":"uint256","nodeType":"ElementaryTypeName","src":"46022:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84794,"initialValue":{"arguments":[{"id":84790,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84726,"src":"46067:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84791,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"46075:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46087:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86054,"src":"46075:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":84788,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"46051:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46056:10:164","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":87042,"src":"46051:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46051:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46022:75:164"},{"assignments":[84796],"declarations":[{"constant":false,"id":84796,"mutability":"mutable","name":"batchEraIndex","nameLocation":"46115:13:164","nodeType":"VariableDeclaration","scope":84879,"src":"46107:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84795,"name":"uint256","nodeType":"ElementaryTypeName","src":"46107:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84803,"initialValue":{"arguments":[{"id":84799,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84726,"src":"46147:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84800,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84729,"src":"46155:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46162:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86018,"src":"46155:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":84797,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"46131:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46136:10:164","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":87042,"src":"46131:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46131:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46107:70:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84805,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84787,"src":"46196:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":84806,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84796,"src":"46217:13:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46196:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84808,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77404,"src":"46232:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46232:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84804,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46188:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46188:78:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84811,"nodeType":"ExpressionStatement","src":"46188:78:164"},{"assignments":[84813],"declarations":[{"constant":false,"id":84813,"mutability":"mutable","name":"_middleware","nameLocation":"46285:11:164","nodeType":"VariableDeclaration","scope":84879,"src":"46277:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84812,"name":"address","nodeType":"ElementaryTypeName","src":"46277:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84817,"initialValue":{"expression":{"expression":{"id":84814,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84726,"src":"46299:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46306:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"46299:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46320:10:164","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":85975,"src":"46299:31:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"46277:53:164"},{"assignments":[84819],"declarations":[{"constant":false,"id":84819,"mutability":"mutable","name":"success","nameLocation":"46345:7:164","nodeType":"VariableDeclaration","scope":84879,"src":"46340:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84818,"name":"bool","nodeType":"ElementaryTypeName","src":"46340:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84835,"initialValue":{"arguments":[{"id":84826,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84813,"src":"46423:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84827,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"46436:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46448:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":86049,"src":"46436:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86061_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":84829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46458:6:164","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":86058,"src":"46436:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":84830,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"46467:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46479:7:164","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":86052,"src":"46467:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":84832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46487:11:164","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":86068,"src":"46467:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46436:62:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":84821,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84726,"src":"46368:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46375:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"46368:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46389:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"46368:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84820,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"46355:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77807_$","typeString":"type(contract IWrappedVara)"}},"id":84824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46355:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77807","typeString":"contract IWrappedVara"}},"id":84825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46415:7:164","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":2659,"src":"46355:67:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":84834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46355:144:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"46340:159:164"},{"expression":{"arguments":[{"id":84837,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84819,"src":"46517:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84838,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77406,"src":"46526:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46526:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46509:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46509:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84841,"nodeType":"ExpressionStatement","src":"46509:38:164"},{"assignments":[84843],"declarations":[{"constant":false,"id":84843,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"46566:20:164","nodeType":"VariableDeclaration","scope":84879,"src":"46558:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84842,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46558:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84858,"initialValue":{"arguments":[{"expression":{"expression":{"id":84848,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84726,"src":"46670:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46677:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77247,"src":"46670:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85976_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46691:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"46670:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":84851,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"46704:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46716:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":86049,"src":"46704:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86061_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":84853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46726:6:164","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":86058,"src":"46704:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":84854,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"46734:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46746:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":86049,"src":"46734:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86061_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":84856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46756:4:164","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":86060,"src":"46734:26:164","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":84845,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84813,"src":"46601:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84844,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"46589:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$76902_$","typeString":"type(contract IMiddleware)"}},"id":84846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46589:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$76902","typeString":"contract IMiddleware"}},"id":84847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46627:25:164","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":76890,"src":"46589:63:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":84857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46589:185:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46558:216:164"},{"assignments":[84860],"declarations":[{"constant":false,"id":84860,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"46793:18:164","nodeType":"VariableDeclaration","scope":84879,"src":"46785:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84859,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46785:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84870,"initialValue":{"arguments":[{"expression":{"id":84865,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"46875:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46887:7:164","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":86052,"src":"46875:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":84867,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"46896:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46908:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86054,"src":"46896:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86071_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":84862,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84813,"src":"46838:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84861,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"46826:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$76902_$","typeString":"type(contract IMiddleware)"}},"id":84863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46826:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$76902","typeString":"contract IMiddleware"}},"id":84864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46851:23:164","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":76901,"src":"46826:48:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$86071_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":84869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46826:92:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46785:133:164"},{"expression":{"arguments":[{"id":84873,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84843,"src":"46963:20:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84874,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84860,"src":"46985:18:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84875,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"47005:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86055_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47017:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86054,"src":"47005:21:164","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":84871,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"46936:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46941:21:164","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86327,"src":"46936:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":84877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46936:91:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84733,"id":84878,"nodeType":"Return","src":"46929:98:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"45338:14:164","parameters":{"id":84730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84726,"mutability":"mutable","name":"router","nameLocation":"45369:6:164","nodeType":"VariableDeclaration","scope":84880,"src":"45353:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84725,"nodeType":"UserDefinedTypeName","pathNode":{"id":84724,"name":"Storage","nameLocations":["45353:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"45353:7:164"},"referencedDeclaration":77264,"src":"45353:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84729,"mutability":"mutable","name":"_batch","nameLocation":"45407:6:164","nodeType":"VariableDeclaration","scope":84880,"src":"45377:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84728,"nodeType":"UserDefinedTypeName","pathNode":{"id":84727,"name":"Gear.BatchCommitment","nameLocations":["45377:4:164","45382:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86045,"src":"45377:20:164"},"referencedDeclaration":86045,"src":"45377:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"45352:62:164"},"returnParameters":{"id":84733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84880,"src":"45432:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45432:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"45431:9:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85028,"nodeType":"FunctionDefinition","src":"47101:1705:164","nodes":[],"body":{"id":85027,"nodeType":"Block","src":"47216:1590:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84893,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84887,"src":"47234:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47241:20:164","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":86044,"src":"47234:27:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86011_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":84895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47262:6:164","memberName":"length","nodeType":"MemberAccess","src":"47234:34:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":84896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47272:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"47234:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84898,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77408,"src":"47275:28:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47275:30:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84892,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47226:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47226:80:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84901,"nodeType":"ExpressionStatement","src":"47226:80:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84902,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84887,"src":"47321:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47328:20:164","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":86044,"src":"47321:27:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86011_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":84904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47349:6:164","memberName":"length","nodeType":"MemberAccess","src":"47321:34:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":84905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47359:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"47321:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84912,"nodeType":"IfStatement","src":"47317:182:164","trueBody":{"id":84911,"nodeType":"Block","src":"47362:137:164","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":84908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47485:2:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":84907,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"47475:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":84909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47475:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84891,"id":84910,"nodeType":"Return","src":"47468:20:164"}]}},{"assignments":[84917],"declarations":[{"constant":false,"id":84917,"mutability":"mutable","name":"_commitment","nameLocation":"47544:11:164","nodeType":"VariableDeclaration","scope":85027,"src":"47509:46:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":84916,"nodeType":"UserDefinedTypeName","pathNode":{"id":84915,"name":"Gear.ValidatorsCommitment","nameLocations":["47509:4:164","47514:20:164"],"nodeType":"IdentifierPath","referencedDeclaration":86011,"src":"47509:25:164"},"referencedDeclaration":86011,"src":"47509:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":84922,"initialValue":{"baseExpression":{"expression":{"id":84918,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84887,"src":"47558:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47565:20:164","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":86044,"src":"47558:27:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86011_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":84921,"indexExpression":{"hexValue":"30","id":84920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47586:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47558:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"47509:79:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84924,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84917,"src":"47607:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47619:10:164","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":86008,"src":"47607:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":84926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47630:6:164","memberName":"length","nodeType":"MemberAccess","src":"47607:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":84927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47639:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"47607:33:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84929,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77410,"src":"47642:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47642:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84923,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47599:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47599:65:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84932,"nodeType":"ExpressionStatement","src":"47599:65:164"},{"assignments":[84934],"declarations":[{"constant":false,"id":84934,"mutability":"mutable","name":"currentEraIndex","nameLocation":"47737:15:164","nodeType":"VariableDeclaration","scope":85027,"src":"47729:23:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84933,"name":"uint256","nodeType":"ElementaryTypeName","src":"47729:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84946,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84935,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"47756:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47762:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"47756:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":84937,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84884,"src":"47774:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47781:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"47774:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47794:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86104,"src":"47774:29:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"47756:47:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":84941,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"47755:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":84942,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84884,"src":"47807:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47814:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"47807:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47824:3:164","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86198,"src":"47807:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47755:72:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"47729:98:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84948,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84917,"src":"47846:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47858:8:164","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":86010,"src":"47846:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84950,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84934,"src":"47870:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":84951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47888:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"47870:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47846:43:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84954,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77412,"src":"47891:20:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47891:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84947,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47838:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47838:76:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84957,"nodeType":"ExpressionStatement","src":"47838:76:164"},{"assignments":[84959],"declarations":[{"constant":false,"id":84959,"mutability":"mutable","name":"nextEraStart","nameLocation":"47933:12:164","nodeType":"VariableDeclaration","scope":85027,"src":"47925:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84958,"name":"uint256","nodeType":"ElementaryTypeName","src":"47925:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84970,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84960,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84884,"src":"47948:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47955:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"47948:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47968:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86104,"src":"47948:29:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84963,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84884,"src":"47980:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47987:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"47980:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47997:3:164","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86198,"src":"47980:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":84966,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84917,"src":"48003:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48015:8:164","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":86010,"src":"48003:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47980:43:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47948:75:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"47925:98:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84972,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"48041:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48047:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"48041:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84974,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84959,"src":"48060:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":84975,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84884,"src":"48075:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48082:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77259,"src":"48075:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86203_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48092:8:164","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":86200,"src":"48075:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48060:40:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48041:59:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84980,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77414,"src":"48102:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48102:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84971,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48033:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48033:90:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84983,"nodeType":"ExpressionStatement","src":"48033:90:164"},{"assignments":[84988],"declarations":[{"constant":false,"id":84988,"mutability":"mutable","name":"_validators","nameLocation":"48205:11:164","nodeType":"VariableDeclaration","scope":85027,"src":"48181:35:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84987,"nodeType":"UserDefinedTypeName","pathNode":{"id":84986,"name":"Gear.Validators","nameLocations":["48181:4:164","48186:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"48181:15:164"},"referencedDeclaration":85953,"src":"48181:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":84993,"initialValue":{"arguments":[{"id":84991,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84884,"src":"48246:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":84989,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"48219:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":84990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48224:21:164","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":86878,"src":"48219:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77264_storage_ptr_$returns$_t_struct$_Validators_$85953_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":84992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48219:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"48181:72:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84995,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84988,"src":"48271:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48283:16:164","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85952,"src":"48271:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":84997,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"48302:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48308:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"48302:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48271:46:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85000,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77416,"src":"48319:26:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48319:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84994,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48263:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48263:85:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85003,"nodeType":"ExpressionStatement","src":"48263:85:164"},{"expression":{"arguments":[{"id":85005,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84988,"src":"48441:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":85006,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84917,"src":"48466:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48478:22:164","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86000,"src":"48466:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":85008,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84917,"src":"48514:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48526:19:164","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86003,"src":"48514:31:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":85010,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84917,"src":"48559:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48571:33:164","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":86005,"src":"48559:45:164","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":85012,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84917,"src":"48618:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48630:10:164","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":86008,"src":"48618:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":85014,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84959,"src":"48654:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_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":85004,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85265,"src":"48411:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$85953_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$85932_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":85015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48411:265:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85016,"nodeType":"ExpressionStatement","src":"48411:265:164"},{"eventCall":{"arguments":[{"expression":{"id":85018,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84917,"src":"48718:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48730:8:164","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":86010,"src":"48718:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":85017,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77301,"src":"48692:25:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":85020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48692:47:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85021,"nodeType":"EmitStatement","src":"48687:52:164"},{"expression":{"arguments":[{"id":85024,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84917,"src":"48787:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86011_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":85022,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87132,"src":"48757:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87132_$","typeString":"type(library Gear)"}},"id":85023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48762:24:164","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86355,"src":"48757:29:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$86011_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":85025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48757:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84891,"id":85026,"nodeType":"Return","src":"48750:49:164"}]},"documentation":{"id":84881,"nodeType":"StructuredDocumentation","src":"47040:56:164","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"47110:17:164","parameters":{"id":84888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84884,"mutability":"mutable","name":"router","nameLocation":"47144:6:164","nodeType":"VariableDeclaration","scope":85028,"src":"47128:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84883,"nodeType":"UserDefinedTypeName","pathNode":{"id":84882,"name":"Storage","nameLocations":["47128:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"47128:7:164"},"referencedDeclaration":77264,"src":"47128:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84887,"mutability":"mutable","name":"_batch","nameLocation":"47182:6:164","nodeType":"VariableDeclaration","scope":85028,"src":"47152:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84886,"nodeType":"UserDefinedTypeName","pathNode":{"id":84885,"name":"Gear.BatchCommitment","nameLocations":["47152:4:164","47157:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86045,"src":"47152:20:164"},"referencedDeclaration":86045,"src":"47152:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86045_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"47127:62:164"},"returnParameters":{"id":84891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85028,"src":"47207:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47207:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"47206:9:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85148,"nodeType":"FunctionDefinition","src":"48812:1168:164","nodes":[],"body":{"id":85147,"nodeType":"Block","src":"48956:1024:164","nodes":[],"statements":[{"assignments":[85041],"declarations":[{"constant":false,"id":85041,"mutability":"mutable","name":"transitionsLen","nameLocation":"48974:14:164","nodeType":"VariableDeclaration","scope":85147,"src":"48966:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85040,"name":"uint256","nodeType":"ElementaryTypeName","src":"48966:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85044,"initialValue":{"expression":{"id":85042,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85035,"src":"48991:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86195_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":85043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49004:6:164","memberName":"length","nodeType":"MemberAccess","src":"48991:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"48966:44:164"},{"assignments":[85046],"declarations":[{"constant":false,"id":85046,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"49028:19:164","nodeType":"VariableDeclaration","scope":85147,"src":"49020:27:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85045,"name":"uint256","nodeType":"ElementaryTypeName","src":"49020:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85050,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85047,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85041,"src":"49050:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":85048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49067:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"49050:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"49020:49:164"},{"assignments":[85052],"declarations":[{"constant":false,"id":85052,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"49087:23:164","nodeType":"VariableDeclaration","scope":85147,"src":"49079:31:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85051,"name":"uint256","nodeType":"ElementaryTypeName","src":"49079:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85057,"initialValue":{"arguments":[{"id":85055,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85046,"src":"49129:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":85053,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"49113:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":85054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49120:8:164","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"49113:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":85056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49113:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"49079:70:164"},{"assignments":[85059],"declarations":[{"constant":false,"id":85059,"mutability":"mutable","name":"offset","nameLocation":"49167:6:164","nodeType":"VariableDeclaration","scope":85147,"src":"49159:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85058,"name":"uint256","nodeType":"ElementaryTypeName","src":"49159:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85061,"initialValue":{"hexValue":"30","id":85060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49176:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"49159:18:164"},{"body":{"id":85138,"nodeType":"Block","src":"49233:640:164","statements":[{"assignments":[85076],"declarations":[{"constant":false,"id":85076,"mutability":"mutable","name":"transition","nameLocation":"49277:10:164","nodeType":"VariableDeclaration","scope":85138,"src":"49247:40:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":85075,"nodeType":"UserDefinedTypeName","pathNode":{"id":85074,"name":"Gear.StateTransition","nameLocations":["49247:4:164","49252:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86195,"src":"49247:20:164"},"referencedDeclaration":86195,"src":"49247:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":85080,"initialValue":{"baseExpression":{"id":85077,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85035,"src":"49290:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86195_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":85079,"indexExpression":{"id":85078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85063,"src":"49303:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49290:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"49247:58:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":85089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":85082,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85031,"src":"49328:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49335:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"49328:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":85084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49348:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86138,"src":"49328:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":85087,"indexExpression":{"expression":{"id":85085,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85076,"src":"49357:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49368:7:164","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":86169,"src":"49357:18:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49328:48:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":85088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49380:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49328:53:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85090,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77394,"src":"49383:14:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49383:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85081,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49320:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49320:80:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85093,"nodeType":"ExpressionStatement","src":"49320:80:164"},{"assignments":[85095],"declarations":[{"constant":false,"id":85095,"mutability":"mutable","name":"value","nameLocation":"49423:5:164","nodeType":"VariableDeclaration","scope":85138,"src":"49415:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85094,"name":"uint128","nodeType":"ElementaryTypeName","src":"49415:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":85097,"initialValue":{"hexValue":"30","id":85096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49431:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"49415:17:164"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":85101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":85098,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85076,"src":"49451:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49462:14:164","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":86181,"src":"49451:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":85100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49480:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49451:30:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":85104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"49485:38:164","subExpression":{"expression":{"id":85102,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85076,"src":"49486:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49497:26:164","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":86184,"src":"49486:37:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"49451:72:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85112,"nodeType":"IfStatement","src":"49447:144:164","trueBody":{"id":85111,"nodeType":"Block","src":"49525:66:164","statements":[{"expression":{"id":85109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85106,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85095,"src":"49543:5:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":85107,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85076,"src":"49551:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49562:14:164","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":86181,"src":"49551:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"49543:33:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":85110,"nodeType":"ExpressionStatement","src":"49543:33:164"}]}},{"assignments":[85114],"declarations":[{"constant":false,"id":85114,"mutability":"mutable","name":"transitionHash","nameLocation":"49613:14:164","nodeType":"VariableDeclaration","scope":85138,"src":"49605:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49605:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":85124,"initialValue":{"arguments":[{"id":85122,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85076,"src":"49695:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":85116,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85076,"src":"49638:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49649:7:164","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":86169,"src":"49638:18:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85115,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"49630:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77166_$","typeString":"type(contract IMirror)"}},"id":85118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49630:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77166","typeString":"contract IMirror"}},"id":85119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49658:22:164","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":77165,"src":"49630:50:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$86195_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":85121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":85120,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85095,"src":"49688:5:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"49630:64:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$86195_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":85123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49630:76:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"49605:101:164"},{"expression":{"arguments":[{"id":85128,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85052,"src":"49746:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85129,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85059,"src":"49771:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85130,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85114,"src":"49779:14:164","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":85125,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"49720:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":85127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49727:18:164","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"49720:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":85131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49720:74:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85132,"nodeType":"ExpressionStatement","src":"49720:74:164"},{"id":85137,"nodeType":"UncheckedBlock","src":"49808:55:164","statements":[{"expression":{"id":85135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85133,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85059,"src":"49836:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":85134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49846:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"49836:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85136,"nodeType":"ExpressionStatement","src":"49836:12:164"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85063,"src":"49208:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":85067,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85041,"src":"49212:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"49208:18:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85139,"initializationExpression":{"assignments":[85063],"declarations":[{"constant":false,"id":85063,"mutability":"mutable","name":"i","nameLocation":"49201:1:164","nodeType":"VariableDeclaration","scope":85139,"src":"49193:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85062,"name":"uint256","nodeType":"ElementaryTypeName","src":"49193:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85065,"initialValue":{"hexValue":"30","id":85064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49205:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"49193:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":85070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"49228:3:164","subExpression":{"id":85069,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85063,"src":"49228:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85071,"nodeType":"ExpressionStatement","src":"49228:3:164"},"nodeType":"ForStatement","src":"49188:685:164"},{"expression":{"arguments":[{"id":85142,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85052,"src":"49925:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":85143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49950:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":85144,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85046,"src":"49953:19:164","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":85140,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"49890:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":85141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49897:27:164","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"49890:34:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":85145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49890:83:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85039,"id":85146,"nodeType":"Return","src":"49883:90:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"48821:18:164","parameters":{"id":85036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85031,"mutability":"mutable","name":"router","nameLocation":"48856:6:164","nodeType":"VariableDeclaration","scope":85148,"src":"48840:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":85030,"nodeType":"UserDefinedTypeName","pathNode":{"id":85029,"name":"Storage","nameLocations":["48840:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"48840:7:164"},"referencedDeclaration":77264,"src":"48840:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":85035,"mutability":"mutable","name":"_transitions","nameLocation":"48896:12:164","nodeType":"VariableDeclaration","scope":85148,"src":"48864:44:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86195_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":85033,"nodeType":"UserDefinedTypeName","pathNode":{"id":85032,"name":"Gear.StateTransition","nameLocations":["48864:4:164","48869:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86195,"src":"48864:20:164"},"referencedDeclaration":86195,"src":"48864:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86195_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":85034,"nodeType":"ArrayTypeName","src":"48864:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86195_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"48839:70:164"},"returnParameters":{"id":85039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85148,"src":"48943:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48943:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48942:9:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85265,"nodeType":"FunctionDefinition","src":"49986:1539:164","nodes":[],"body":{"id":85264,"nodeType":"Block","src":"50307:1218:164","nodes":[],"statements":[{"condition":{"id":85166,"name":"_hasAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85153,"src":"50321:23:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85195,"nodeType":"IfStatement","src":"50317:752:164","trueBody":{"id":85194,"nodeType":"Block","src":"50346:723:164","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":85170,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85156,"src":"50751:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":85171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50775:1:164","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":85929,"src":"50751:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":85172,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85156,"src":"50778:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":85173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50802:1:164","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":85931,"src":"50778:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":85168,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62425,"src":"50728:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$62425_$","typeString":"type(library FROST)"}},"id":85169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"50734:16:164","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":62094,"src":"50728:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":85174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50728:76:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85175,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77331,"src":"50822:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50822:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85167,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"50703:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50703:166:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85178,"nodeType":"ExpressionStatement","src":"50703:166:164"},{"expression":{"id":85183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":85179,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85151,"src":"50883:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"50895:19:164","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85937,"src":"50883:31:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85182,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85156,"src":"50917:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"50883:57:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":85184,"nodeType":"ExpressionStatement","src":"50883:57:164"},{"expression":{"id":85192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":85185,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85151,"src":"50954:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"50966:40:164","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":85940,"src":"50954:52:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":85190,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85158,"src":"51023:34:164","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":85188,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87588,"src":"51009:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$87588_$","typeString":"type(library SSTORE2)"}},"id":85189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51017:5:164","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":87444,"src":"51009:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":85191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51009:49:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"50954:104:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":85193,"nodeType":"ExpressionStatement","src":"50954:104:164"}]}},{"body":{"id":85223,"nodeType":"Block","src":"51132:114:164","statements":[{"assignments":[85209],"declarations":[{"constant":false,"id":85209,"mutability":"mutable","name":"_validator","nameLocation":"51154:10:164","nodeType":"VariableDeclaration","scope":85223,"src":"51146:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85208,"name":"address","nodeType":"ElementaryTypeName","src":"51146:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":85214,"initialValue":{"baseExpression":{"expression":{"id":85210,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85151,"src":"51167:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51179:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85949,"src":"51167:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":85213,"indexExpression":{"id":85212,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85197,"src":"51184:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"51167:19:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"51146:40:164"},{"expression":{"id":85221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":85215,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85151,"src":"51200:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51212:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85945,"src":"51200:15:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":85219,"indexExpression":{"id":85217,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85209,"src":"51216:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"51200:27:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":85220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"51230:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"51200:35:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85222,"nodeType":"ExpressionStatement","src":"51200:35:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85200,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85197,"src":"51098:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":85201,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85151,"src":"51102:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51114:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85949,"src":"51102:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":85203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51119:6:164","memberName":"length","nodeType":"MemberAccess","src":"51102:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"51098:27:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85224,"initializationExpression":{"assignments":[85197],"declarations":[{"constant":false,"id":85197,"mutability":"mutable","name":"i","nameLocation":"51091:1:164","nodeType":"VariableDeclaration","scope":85224,"src":"51083:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85196,"name":"uint256","nodeType":"ElementaryTypeName","src":"51083:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85199,"initialValue":{"hexValue":"30","id":85198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51095:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"51083:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":85206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"51127:3:164","subExpression":{"id":85205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85197,"src":"51127:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85207,"nodeType":"ExpressionStatement","src":"51127:3:164"},"nodeType":"ForStatement","src":"51078:168:164"},{"body":{"id":85250,"nodeType":"Block","src":"51307:111:164","statements":[{"assignments":[85237],"declarations":[{"constant":false,"id":85237,"mutability":"mutable","name":"_validator","nameLocation":"51329:10:164","nodeType":"VariableDeclaration","scope":85250,"src":"51321:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85236,"name":"address","nodeType":"ElementaryTypeName","src":"51321:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":85241,"initialValue":{"baseExpression":{"id":85238,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85161,"src":"51342:14:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":85240,"indexExpression":{"id":85239,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85226,"src":"51357:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"51342:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"51321:38:164"},{"expression":{"id":85248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":85242,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85151,"src":"51373:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51385:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85945,"src":"51373:15:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":85246,"indexExpression":{"id":85244,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85237,"src":"51389:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"51373:27:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":85247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"51403:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"51373:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85249,"nodeType":"ExpressionStatement","src":"51373:34:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85226,"src":"51275:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":85230,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85161,"src":"51279:14:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":85231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51294:6:164","memberName":"length","nodeType":"MemberAccess","src":"51279:21:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"51275:25:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85251,"initializationExpression":{"assignments":[85226],"declarations":[{"constant":false,"id":85226,"mutability":"mutable","name":"i","nameLocation":"51268:1:164","nodeType":"VariableDeclaration","scope":85251,"src":"51260:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85225,"name":"uint256","nodeType":"ElementaryTypeName","src":"51260:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85228,"initialValue":{"hexValue":"30","id":85227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51272:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"51260:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":85234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"51302:3:164","subExpression":{"id":85233,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85226,"src":"51302:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85235,"nodeType":"ExpressionStatement","src":"51302:3:164"},"nodeType":"ForStatement","src":"51255:163:164"},{"expression":{"id":85256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":85252,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85151,"src":"51427:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"51439:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85949,"src":"51427:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85255,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85161,"src":"51446:14:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"51427:33:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":85257,"nodeType":"ExpressionStatement","src":"51427:33:164"},{"expression":{"id":85262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":85258,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85151,"src":"51470:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85260,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"51482:16:164","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85952,"src":"51470:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85261,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85163,"src":"51501:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"51470:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85263,"nodeType":"ExpressionStatement","src":"51470:48:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"49995:16:164","parameters":{"id":85164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85151,"mutability":"mutable","name":"_validators","nameLocation":"50045:11:164","nodeType":"VariableDeclaration","scope":85265,"src":"50021:35:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":85150,"nodeType":"UserDefinedTypeName","pathNode":{"id":85149,"name":"Gear.Validators","nameLocations":["50021:4:164","50026:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":85953,"src":"50021:15:164"},"referencedDeclaration":85953,"src":"50021:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85953_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":85153,"mutability":"mutable","name":"_hasAggregatedPublicKey","nameLocation":"50071:23:164","nodeType":"VariableDeclaration","scope":85265,"src":"50066:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85152,"name":"bool","nodeType":"ElementaryTypeName","src":"50066:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":85156,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"50136:23:164","nodeType":"VariableDeclaration","scope":85265,"src":"50104:55:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":85155,"nodeType":"UserDefinedTypeName","pathNode":{"id":85154,"name":"Gear.AggregatedPublicKey","nameLocations":["50104:4:164","50109:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":85932,"src":"50104:24:164"},"referencedDeclaration":85932,"src":"50104:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85932_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":85158,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"50182:34:164","nodeType":"VariableDeclaration","scope":85265,"src":"50169:47:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85157,"name":"bytes","nodeType":"ElementaryTypeName","src":"50169:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":85161,"mutability":"mutable","name":"_newValidators","nameLocation":"50243:14:164","nodeType":"VariableDeclaration","scope":85265,"src":"50226:31:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":85159,"name":"address","nodeType":"ElementaryTypeName","src":"50226:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":85160,"nodeType":"ArrayTypeName","src":"50226:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":85163,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"50275:17:164","nodeType":"VariableDeclaration","scope":85265,"src":"50267:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85162,"name":"uint256","nodeType":"ElementaryTypeName","src":"50267:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50011:287:164"},"returnParameters":{"id":85165,"nodeType":"ParameterList","parameters":[],"src":"50307:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85278,"nodeType":"FunctionDefinition","src":"51531:192:164","nodes":[],"body":{"id":85277,"nodeType":"Block","src":"51596:127:164","nodes":[],"statements":[{"assignments":[85272],"declarations":[{"constant":false,"id":85272,"mutability":"mutable","name":"slot","nameLocation":"51614:4:164","nodeType":"VariableDeclaration","scope":85277,"src":"51606:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51606:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":85275,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":85273,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85290,"src":"51621:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":85274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51621:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"51606:32:164"},{"AST":{"nativeSrc":"51674:43:164","nodeType":"YulBlock","src":"51674:43:164","statements":[{"nativeSrc":"51688:19:164","nodeType":"YulAssignment","src":"51688:19:164","value":{"name":"slot","nativeSrc":"51703:4:164","nodeType":"YulIdentifier","src":"51703:4:164"},"variableNames":[{"name":"router.slot","nativeSrc":"51688:11:164","nodeType":"YulIdentifier","src":"51688:11:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":85269,"isOffset":false,"isSlot":true,"src":"51688:11:164","suffix":"slot","valueSize":1},{"declaration":85272,"isOffset":false,"isSlot":false,"src":"51703:4:164","valueSize":1}],"flags":["memory-safe"],"id":85276,"nodeType":"InlineAssembly","src":"51649:68:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"51540:7:164","parameters":{"id":85266,"nodeType":"ParameterList","parameters":[],"src":"51547:2:164"},"returnParameters":{"id":85270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85269,"mutability":"mutable","name":"router","nameLocation":"51588:6:164","nodeType":"VariableDeclaration","scope":85278,"src":"51572:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":85268,"nodeType":"UserDefinedTypeName","pathNode":{"id":85267,"name":"Storage","nameLocations":["51572:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"51572:7:164"},"referencedDeclaration":77264,"src":"51572:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"51571:24:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":85290,"nodeType":"FunctionDefinition","src":"51729:128:164","nodes":[],"body":{"id":85289,"nodeType":"Block","src":"51787:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":85285,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82281,"src":"51831:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":85283,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"51804:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":85284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51816:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"51804:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":85286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51804:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":85287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51845:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"51804:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85282,"id":85288,"nodeType":"Return","src":"51797:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"51738:15:164","parameters":{"id":85279,"nodeType":"ParameterList","parameters":[],"src":"51753:2:164"},"returnParameters":{"id":85282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85290,"src":"51778:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51778:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"51777:9:164"},"scope":85378,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":85318,"nodeType":"FunctionDefinition","src":"51863:240:164","nodes":[],"body":{"id":85317,"nodeType":"Block","src":"51931:172:164","nodes":[],"statements":[{"assignments":[85298],"declarations":[{"constant":false,"id":85298,"mutability":"mutable","name":"slot","nameLocation":"51949:4:164","nodeType":"VariableDeclaration","scope":85317,"src":"51941:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51941:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":85303,"initialValue":{"arguments":[{"id":85301,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85292,"src":"51983:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":85299,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"51956:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":85300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51971:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"51956:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":85302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51956:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"51941:52:164"},{"expression":{"id":85311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":85307,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82281,"src":"52030:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":85304,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"52003:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":85306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"52015:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"52003:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":85308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52003:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":85309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"52044:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"52003:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85310,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85298,"src":"52052:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"52003:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":85312,"nodeType":"ExpressionStatement","src":"52003:53:164"},{"eventCall":{"arguments":[{"id":85314,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85298,"src":"52091:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":85313,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77320,"src":"52072:18:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":85315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52072:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85316,"nodeType":"EmitStatement","src":"52067:29:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":85295,"kind":"modifierInvocation","modifierName":{"id":85294,"name":"onlyOwner","nameLocations":["51921:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"51921:9:164"},"nodeType":"ModifierInvocation","src":"51921:9:164"}],"name":"_setStorageSlot","nameLocation":"51872:15:164","parameters":{"id":85293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85292,"mutability":"mutable","name":"namespace","nameLocation":"51902:9:164","nodeType":"VariableDeclaration","scope":85318,"src":"51888:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85291,"name":"string","nodeType":"ElementaryTypeName","src":"51888:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51887:25:164"},"returnParameters":{"id":85296,"nodeType":"ParameterList","parameters":[],"src":"51931:0:164"},"scope":85378,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85377,"nodeType":"FunctionDefinition","src":"52251:396:164","nodes":[],"body":{"id":85376,"nodeType":"Block","src":"52292:355:164","nodes":[],"statements":[{"assignments":[85326],"declarations":[{"constant":false,"id":85326,"mutability":"mutable","name":"router","nameLocation":"52318:6:164","nodeType":"VariableDeclaration","scope":85376,"src":"52302:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":85325,"nodeType":"UserDefinedTypeName","pathNode":{"id":85324,"name":"Storage","nameLocations":["52302:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77264,"src":"52302:7:164"},"referencedDeclaration":77264,"src":"52302:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":85329,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":85327,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85278,"src":"52327:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77264_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":85328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52327:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"52302:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":85338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":85331,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85326,"src":"52354:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"52361:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77239,"src":"52354:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86105_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":85333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"52374:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86100,"src":"52354:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":85336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52390:1:164","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":85335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"52382:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":85334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52382:7:164","typeDescriptions":{}}},"id":85337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52382:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"52354:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85339,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77346,"src":"52394:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52394:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85330,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"52346:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52346:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85342,"nodeType":"ExpressionStatement","src":"52346:82:164"},{"assignments":[85344],"declarations":[{"constant":false,"id":85344,"mutability":"mutable","name":"value","nameLocation":"52447:5:164","nodeType":"VariableDeclaration","scope":85376,"src":"52439:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85343,"name":"uint128","nodeType":"ElementaryTypeName","src":"52439:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":85350,"initialValue":{"arguments":[{"expression":{"id":85347,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"52463:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"52467:5:164","memberName":"value","nodeType":"MemberAccess","src":"52463:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":85346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"52455:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":85345,"name":"uint128","nodeType":"ElementaryTypeName","src":"52455:7:164","typeDescriptions":{}}},"id":85349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52455:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"52439:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":85354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85352,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85344,"src":"52491:5:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":85353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52499:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"52491:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85355,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77420,"src":"52502:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52502:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85351,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"52483:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52483:39:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85358,"nodeType":"ExpressionStatement","src":"52483:39:164"},{"assignments":[85360],"declarations":[{"constant":false,"id":85360,"mutability":"mutable","name":"actorId","nameLocation":"52541:7:164","nodeType":"VariableDeclaration","scope":85376,"src":"52533:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85359,"name":"address","nodeType":"ElementaryTypeName","src":"52533:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":85363,"initialValue":{"expression":{"id":85361,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"52551:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"52555:6:164","memberName":"sender","nodeType":"MemberAccess","src":"52551:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"52533:28:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":85371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":85365,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85326,"src":"52579:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77264_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"52586:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77263,"src":"52579:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86157_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":85367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"52599:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86138,"src":"52579:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":85369,"indexExpression":{"id":85368,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85360,"src":"52608:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"52579:37:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":85370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52620:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"52579:42:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85372,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77394,"src":"52623:14:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52623:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"52571:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52571:69:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85375,"nodeType":"ExpressionStatement","src":"52571:69:164"}]},"documentation":{"id":85319,"nodeType":"StructuredDocumentation","src":"52109:137:164","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":85322,"kind":"modifierInvocation","modifierName":{"id":85321,"name":"whenNotPaused","nameLocations":["52278:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"52278:13:164"},"nodeType":"ModifierInvocation","src":"52278:13:164"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":85320,"nodeType":"ParameterList","parameters":[],"src":"52258:2:164"},"returnParameters":{"id":85323,"nodeType":"ParameterList","parameters":[],"src":"52292:0:164"},"scope":85378,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":82265,"name":"IRouter","nameLocations":["1576:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77791,"src":"1576:7:164"},"id":82266,"nodeType":"InheritanceSpecifier","src":"1576:7:164"},{"baseName":{"id":82267,"name":"OwnableUpgradeable","nameLocations":["1589:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"1589:18:164"},"id":82268,"nodeType":"InheritanceSpecifier","src":"1589:18:164"},{"baseName":{"id":82269,"name":"PausableUpgradeable","nameLocations":["1613:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":20737,"src":"1613:19:164"},"id":82270,"nodeType":"InheritanceSpecifier","src":"1613:19:164"},{"baseName":{"id":82271,"name":"EIP712Upgradeable","nameLocations":["1638:17:164"],"nodeType":"IdentifierPath","referencedDeclaration":20974,"src":"1638:17:164"},"id":82272,"nodeType":"InheritanceSpecifier","src":"1638:17:164"},{"baseName":{"id":82273,"name":"NoncesUpgradeable","nameLocations":["1661:17:164"],"nodeType":"IdentifierPath","referencedDeclaration":20577,"src":"1661:17:164"},"id":82274,"nodeType":"InheritanceSpecifier","src":"1661:17:164"},{"baseName":{"id":82275,"name":"ReentrancyGuardTransient","nameLocations":["1684:24:164"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"1684:24:164"},"id":82276,"nodeType":"InheritanceSpecifier","src":"1684:24:164"},{"baseName":{"id":82277,"name":"UUPSUpgradeable","nameLocations":["1714:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"1714:15:164"},"id":82278,"nodeType":"InheritanceSpecifier","src":"1714:15:164"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[85378,2079,376,6594,20577,20974,366,20737,19465,20363,1913,77791],"name":"Router","nameLocation":"1562:6:164","scope":85379,"usedErrors":[995,1008,1662,1665,1936,1941,3201,6168,6514,8568,8573,8578,11979,19301,19306,20480,20616,20619,77323,77326,77329,77331,77334,77337,77340,77343,77346,77349,77356,77365,77370,77377,77380,77382,77384,77386,77388,77390,77392,77394,77396,77398,77400,77402,77404,77406,77408,77410,77412,77414,77416,77418,77420,85908,85911,85914,85917,85920,85923,85926],"usedEvents":[324,346,1670,19312,20608,20613,77269,77274,77279,77284,77291,77296,77301,77308,77315,77320]}],"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":"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":"bumpProtocolVersion","inputs":[{"name":"_versionType","type":"uint8","internalType":"enum Gear.VersionType"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"protocolVersion","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"},{"name":"protocolVersion","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"subProtocolVersion","inputs":[{"name":"versionType","type":"uint8","internalType":"enum Gear.VersionType"}],"outputs":[{"name":"","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":"ProtocolVersionChanged","inputs":[{"name":"newProtocolVersion","type":"uint256","indexed":false,"internalType":"uint256"}],"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":"0x60a080604052346100c257306080525f516020615d565f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051615c8f90816100c78239608051818181612d6e0152612e020152f35b6001600160401b0319166001600160401b039081175f516020615d565f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613cb0565b5f516020615c2f5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e71461351d575080630b9737ce146134ea5780630c18d2771461341f5780630d91bf2a1461325157806311bec80d1461321e578063188509e9146131f057806328e24b3d146131c25780632ae9c600146131955780633644e5151461317a5780633683c4d2146130bd5780633bd109fa1461306e5780633d43b4181461301a5780633f4ba83a14612f9a5780634f1ef28614612dc257806352d1902d14612d5b57806353f7fd48146123aa5780635734c0e11461226a5780635c975abb1461223b5780636c2eb35014611ce4578063715018a614611c7b57806371a8cf2d14611c4d5780637ecebe0014611bf557806382bdeaad14611aee5780638456cb5914611a7b57806384b0196e146119c157806384d22a4f1461196357806388f50cf01461192a5780638b1edf1e146118cb5780638c4ace6a1461177f5780638da5cb5b1461174a5780638f381dbe146117045780639067088e146116bb57806396a2ddfa1461168d5780639eb939a814611634578063a5d53a44146115b4578063ad3cb1cc1461156b578063baaf02011461146e578063c13911e814611428578063c2eb812f14611084578063ca1e781914611034578063cacf66ab14610ffc578063d456fd5114610fc6578063e3a6684f14610f87578063e6fabc0914610f4e578063e9a28a6014610ab9578063ed01826214610a8f578063ed612f8c14610a57578063edc8722514610a02578063ee32004f1461081c578063f0fd702a146103d8578063f1ef31ec146103aa578063f2fde38b1461037d578063f4f20ac0146103445763facd743b0361000f573461034157602036600319011261034157610303613573565b600361031e5f516020615c2f5f395f51905f525442906155db565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103415780600319360112610341575f516020615c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610341576020366003190112610341576103a761039a613573565b6103a2613c7d565b613c0c565b80f35b50346103415780600319360112610341576020601f5f516020615c2f5f395f51905f52540154604051908152f35b503461034157610140366003190112610341576103f3613573565b602435906044356001600160401b038111610818576104169036906004016136b6565b90916064359060843560ff811681036108145760e4359060ff821682036108105761043f613cb0565b874915610801575f516020615c2f5f395f51905f5254946001860154156107f2576019860196888a528760205260ff60408b20541661047d816136e6565b6107e357895b80496107d5578083036107be5750895b82811061077757508542116107635760405160208101906001600160fb1b03841161075f576104de6020826105a9956105b29760051b8091873781010301601f198101835282613632565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261057760e082613632565b51902061058261556c565b906040519161190160f01b83526002830152602282015260c43591604260a4359220615983565b90929192615a05565b6001600160a01b031681810361074a57505086906105e760018060a01b0360068701541695601f601e8201549101549061399e565b93853b156107465760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610729575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af190811561071e5784916106ef575b50156106e05781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b610711915060203d602011610717575b6107098183613632565b8101906137f5565b5f610698565b503d6106ff565b6040513d86823e3d90fd5b8161073691949394613632565b6107425790855f61064b565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b8049806107858386866139ab565b35146107928386866139ab565b3590156107a3575050600101610493565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107de90613bfe565b610483565b6304c51a3360e31b8a5260048afd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b50346103415761012036600319011261034157610837613547565b61083f61355d565b6084356001600160801b038116908181036109aa578460c43560ff8116810361099b5761086a613cb0565b610878602435600435613cd7565b6006015490936001600160a01b0390911691823b15610818576108c08480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016137ab565b038183885af16109ed575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109e25786916109c3575b50156109b4576001600160a01b03908116939081166109ae575033915b833b156109aa57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099f57610986575b602082604051908152f35b610991838092613632565b61099b578161097b565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610930565b631e4e7d0960e21b8552600485fd5b6109dc915060203d602011610717576107098183613632565b5f610913565b6040513d88823e3d90fd5b816109f791613632565b61074657825f6108cb565b50346103415780600319360112610341576020610a4f5f516020615c2f5f395f51905f525460086004610a3542846155db565b0154910154906001600160801b038260801c921690615541565b604051908152f35b503461034157806003193601126103415760206004610a855f516020615c2f5f395f51905f525442906155db565b0154604051908152f35b503461034157602036600319011261034157600435906003821015610341576020610a4f83613bb6565b5034610341576060366003190112610341576001600160401b036004351161034157610100600435360360031901126103415760026024351015610341576044356001600160401b03811161099b57610b169036906004016136b6565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610f3f5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615c2f5f395f51905f525490600182015415610f3057815415610ed4575b60038201546044600435013503610ec55765ffffffffffff60048301541665ffffffffffff610bb5602460043501613ba3565b1610610eb757610bca60043560040183614539565b92610bdf60a460043501600435600401614a2f565b808096925060051b0460201485151715610ea357610bff8560051b61576f565b8695865b818810610d6f5750610d35965060051b902090610c2560043560040186614a71565b610c3460043560040187614e4f565b90610c43602460043501613ba3565b93610c52606460043501613b95565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610cb760e782613632565b5190209283600382015565ffffffffffff610cd6602460043501613ba3565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610d2a602460043501613ba3565b1693602435916152d8565b15610d6057807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610d8360a460043501600435600401614a2f565b891015610e8f578860061b8101358a5260198801602052600160ff60408c205416610dad816136e6565b03610e8057600191602091610e43838c60061b830101610dcc81614a64565b15610e5f5760068d901b8301358e5260198c01855260408e20805460ff19166002179055601c8c018054610dff90613bfe565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610e2e84614a64565b1515926040519060061b8701358152a2614a64565b908b60061b01358c52825360218b208186015201970196610c03565b60068d901b8301358e5260198c01855260408e20805460ff19169055610e02565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610ef1610ee5606460043501613b95565b6004356004013561448f565b15610f215765ffffffffffff610f0b602460043501613ba3565b164211610b8257631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103415780600319360112610341575f516020615c2f5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610341578060031936011261034157604060085f516020615c2f5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610341578060031936011261034157602065ffffffffffff60045f516020615c2f5f395f51905f5254015416604051908152f35b5034610341578060031936011261034157602065ffffffffffff60025f516020615c2f5f395f51905f52540154821c16604051908152f35b503461034157806003193601126103415761108061106c60046110665f516020615c2f5f395f51905f525442906155db565b01613b42565b604051918291602083526020830190613728565b0390f35b50346103415780600319360112610341576040516110a1816135fb565b6110a9613a91565b81526040516110b7816135e0565b5f8152602081015f905260208201526110ce613a91565b60408201526110db613b0f565b60608201526040516110ec816135e0565b5f80825260208201526080820152611102613a91565b60a08201528160c08201528160e082015281610100820152816101208201528161014082015261016001525f516020615c2f5f395f51905f5254611144613b0f565b5061115160098201615622565b9061115e600f8201615622565b6008820154926040519361117185613617565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e830154601f84015491602085015493604051966111c1886135fb565b6040516111cd816135b1565b60018801548152600288015463ffffffff8116602083015260201c65ffffffffffff1660408201528852604051986112048a6135e0565b60038801548a52600488015465ffffffffffff1660208b015260208901998a5260405190611231826135b1565b60058901546001600160a01b03908116835260068a01548116602084015260078a0154166040808401919091528a0191825260608a0190815261127660158a016139e3565b9860808b01998a5260160161128a90613aaf565b9160a08b0192835260c08b0193845260e08b019485526101008b019586526101208b019687526101408b019788526101608b019889526040519b8c9b60208d52518c815190602001528c602082015163ffffffff1690604001526040015165ffffffffffff1660608d015251805160808d01526020015165ffffffffffff1660a08c015251600160a01b6001900381511660c08c0152600160a01b6001900360208201511660e08c0152600160a01b600190039060400151166101008b0152516101208a01610280905280516001600160801b03166102a08b015260208101516001600160801b03166102c08b015260408101516102e08b01608090526103208b0161139591613764565b90606001519061029f198b8203016103008c01526113b291613764565b975180516001600160401b03166101408b0152602001516001600160801b03166101608a01525180516101808a015260208101516101a08a0152604001516101c0890152516101e0880152516102008701525161ffff166102208601525161024085015251610260840152516102808301520390f35b50346103415760203660031901126103415760ff604060209260195f516020615c2f5f395f51905f525401600435825284522054166040519061146a816136e6565b8152f35b5034610341576020366003190112610341576004356001600160401b03811161099b5761149f9036906004016136b6565b905f516020615c2f5f395f51905f5254906114b983613933565b916114c76040519384613632565b8383526114d384613933565b602084019490601f1901368637601a869201915b81811061153257868587604051928392602084019060208552518091526040840192915b818110611519575050500390f35b825184528594506020938401939092019160010161150b565b8061154861154360019385886139ab565b613a11565b828060a01b03165f528360205260405f205461156482886139cf565b52016114e7565b50346103415780600319360112610341575061108060405161158e604082613632565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613704565b50346103415780600319360112610341575f516020615c2f5f395f51905f52546001600160a01b03906002906115eb9042906155db565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c80825201906040820191826040526020835261162f603f19926060830190613704565b030190f35b503461034157806003193601126103415761164d613a91565b50606061166a60165f516020615c2f5f395f51905f525401613aaf565b61168b60405180926040809180518452602081015160208501520151910152565bf35b50346103415780600319360112610341576020601b5f516020615c2f5f395f51905f52540154604051908152f35b5034610341576020366003190112610341576116d5613573565b601a5f516020615c2f5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461034157602036600319011261034157600435906001600160401b03821161034157602061174061173a36600486016136b6565b90613a25565b6040519015158152f35b50346103415780600319360112610341575f516020615bcf5f395f51905f52546040516001600160a01b039091168152602090f35b50346103415760a03660031901126103415760043560443560ff81168103610746576117a9613cb0565b8249156118bc575f516020615c2f5f395f51905f5254600181015415610f305760198101918385528260205260ff6040862054166117e6816136e6565b6118ad576006820154601e9092015485926001600160a01b031691823b156108185760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611898575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610686565b816118a291613632565b61074657825f611863565b6304c51a3360e31b8552600485fd5b637bb2fa2f60e11b8352600483fd5b50346103415780600319360112610341575f516020615c2f5f395f51905f52546001810190815461191b576002015463ffffffff164090811561190c575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103415780600319360112610341575f516020615c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b503461034157806003193601126103415761197c61380d565b50604061199960155f516020615c2f5f395f51905f5254016139e3565b61168b825180926001600160801b03602080926001600160401b038151168552015116910152565b5034610341578060031936011261034157611a1f906119de614315565b906119e76143e2565b906020611a2d604051936119fb8386613632565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613704565b908682036040880152613704565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a6457505050500390f35b835185528695509381019392810192600101611a55565b5034610341578060031936011261034157611a94613c7d565b611a9c613cb0565b600160ff195f516020615c4f5f395f51905f525416175f516020615c4f5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610341576020366003190112610341576004356001600160401b03811161099b57611b1f9036906004016136b6565b905f516020615c2f5f395f51905f525490611b3983613933565b91611b476040519384613632565b838352611b5384613933565b602084019490601f19013686376019869201915b818110611bbe57868587604051928392602084019060208552518091526040840192915b818110611b99575050500390f35b919350916020806001928651611bae816136e6565b8152019401910191849392611b8b565b80611bcc60019284876139ab565b3588528360205260ff604089205416611be582886139cf565b611bee826136e6565b5201611b67565b5034610341576020366003190112610341576020906040906001600160a01b03611c1d613573565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610341578060031936011261034157602060035f516020615c2f5f395f51905f52540154604051908152f35b5034610341578060031936011261034157611c94613c7d565b5f516020615bcf5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610341578060031936011261034157611cfd613c7d565b5f516020615c6f5f395f51905f525460ff8160401c16908115612226575b50612217575f516020615c6f5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615bcf5f395f51905f5254611d75906001600160a01b0316611d6d6155f7565b6103a26155f7565b611d7d613843565b90611d86613870565b90611d8f6155f7565b611d976155f7565b82516001600160401b03811161211a57611dbe5f516020615baf5f395f51905f52546142dd565b601f81116121b3575b506020601f82116001146121395782939482939261212e575b50508160011b915f199060031b1c1916175f516020615baf5f395f51905f52555b81516001600160401b03811161211a57611e285f516020615bef5f395f51905f52546142dd565b601f81116120ad575b50602092601f821160011461203457928293829392612029575b50508160011b915f199060031b1c1916175f516020615bef5f395f51905f52555b5f516020615c2f5f395f51905f5254611e83614245565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611ed1816135e0565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611efc42846155db565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099f57611f4d918491611ffa575b506138e7565b806103e8026103e881048203611fe657601e830155806101f402906101f4820403611fd257601f820155602061010091015560ff60401b195f516020615c6f5f395f51905f5254165f516020615c6f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b61201c915060203d602011612022575b6120148183613632565b8101906138ce565b5f611f47565b503d61200a565b015190505f80611e4b565b601f198216935f516020615bef5f395f51905f52845280842091845b868110612095575083600195961061207d575b505050811b015f516020615bef5f395f51905f5255611e6c565b01515f1960f88460031b161c191690555f8080612063565b91926020600181928685015181550194019201612050565b81811115611e31575f516020615bef5f395f51905f52835261210c907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510612112575b601f82910160051c0391016142c2565b5f611e31565b8591506120fc565b634e487b7160e01b82526041600452602482fd5b015190505f80611de0565b5f516020615baf5f395f51905f52835280832090601f198316845b81811061219b57509583600195969710612183575b505050811b015f516020615baf5f395f51905f5255611e01565b01515f1960f88460031b161c191690555f8080612169565b9192602060018192868b015181550194019201612154565b81811115611dc7575f516020615baf5f395f51905f528352612211907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c906020851061211257601f82910160051c0391016142c2565b5f611dc7565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611d1b565b5034610341578060031936011261034157602060ff5f516020615c4f5f395f51905f5254166040519015158152f35b503461034157602036600319011261034157600435600381101561099b57612290613c7d565b60205f516020615c2f5f395f51905f5254019081548060101c9160ff8260081c169060ff8316906122c0816136e6565b8061230a575050505060018101809111611fd2577f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9160209160101b80915b55604051908152a180f35b6001919293945061231a816136e6565b03612362575060018101809111611fe657916020917f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9360081b9061ffff19161780916122ff565b91905060018201809211611fe657916020918361ff007f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec95169061ffff1916171780916122ff565b503461034157610160366003190112610341576123c5613573565b906024356001600160a01b0381169081900361099b576123e3613547565b926123ec61355d565b9260a43560c43560843560403660e31901126108185761012435966001600160401b0388116109aa57366023890112156109aa578760040135926001600160401b03841161074257366024858b01011161074257610144356001600160401b038111610814576124609036906004016136b6565b9590935f516020615c6f5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612d53575b6001149081612d49575b159081612d40575b50612d31576124e2908a60016001600160401b03195f516020615c6f5f395f51905f525416175f516020615c6f5f395f51905f5255612d01575b611d6d6155f7565b6124ea6155f7565b6124f2613843565b6124fa613870565b906125036155f7565b61250b6155f7565b8051906001600160401b038211612ced5781908b6125365f516020615baf5f395f51905f52546142dd565b601f8111612c9c575b5050602090601f8311600114612c20578c92612c15575b50508160011b915f199060031b1c1916175f516020615baf5f395f51905f52555b8051906001600160401b038211612c015781906125a15f516020615bef5f395f51905f52546142dd565b601f8111612b92575b50602090601f8311600114612b16578b92612b0b575b50508160011b915f199060031b1c1916175f516020615bef5f395f51905f52555b6125e96155f7565b4215612afc578115612aed5781811115612ade57600a612609838361388f565b04831015612acf576040809a81516126218382613632565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612654613c7d565b5f1991519020018a5260ff1960208b2016809e815f516020615c2f5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16126a9614245565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906126f3826135b1565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561276761380d565b508951612773816135e0565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906127b8816135b1565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa908115612ac55790612818918691611ffa57506138e7565b806103e8026103e881048203610ea357601e8a0155806101f402906101f4820403612ab1579061287891601f8a01556128708751986128568a6135e0565b60e4358a5260208a01946101043586526024369201613653565b93369161394a565b958051825170014551231950b75fc4402da1732fc9bebe1982109182612aa0575b505015612a915751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f0918215612a845752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156129415782845260208085208201546001600160a01b03165f90815290869052869020805460ff19169055600101612909565b509195949094865b8351811015612989576001906001600160a01b0361296782876139cf565b5116828060a01b03165f5285602052865f208260ff1982541617905501612949565b50925092938151916001600160401b038311612a7057600160401b8311612a70576020908254848455808510612a55575b500190865260208620865b838110612a38575050505042600e82015560206101009101556129e6575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615c6f5f395f51905f5254165f516020615c6f5f395f51905f52555160018152a180f35b82516001600160a01b0316818301556020909201916001016129c5565b612a6a90848a528580858c20019103906142c2565b5f6129ba565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b612aaa9250615b8b565b5f80612899565b634e487b7160e01b85526011600452602485fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f806125c0565b5f516020615bef5f395f51905f528c52818c209250601f1984168c5b818110612b7a5750908460019594939210612b62575b505050811b015f516020615bef5f395f51905f52556125e1565b01515f1960f88460031b161c191690555f8080612b48565b92936020600181928786015181550195019301612b32565b828111156125aa575f516020615bef5f395f51905f528c52612bf3907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e60208710612bf9575b50601f82910160051c0391016142c2565b5f6125aa565b91508e612be2565b634e487b7160e01b8a52604160045260248afd5b015190505f80612556565b5f516020615baf5f395f51905f528d52818d209250601f1984168d5b818110612c845750908460019594939210612c6c575b505050811b015f516020615baf5f395f51905f5255612577565b01515f1960f88460031b161c191690555f8080612c52565b92936020600181928786015181550195019301612c3c565b8381111561253f575f516020615baf5f395f51905f52612cde92528d6020812091601f860160051c9160208710612ce55750601f82910160051c0391016142c2565b8b5f61253f565b91508f612be2565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615c6f5f395f51905f525416175f516020615c6f5f395f51905f52556124da565b63f92ee8a960e01b8952600489fd5b9050155f6124a0565b303b159150612498565b8b915061248e565b50346103415780600319360112610341577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612db35760206040515f516020615c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261034157612dd7613573565b906024356001600160401b03811161099b57612df7903690600401613698565b916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612f78575b50612f6957612e3a613c7d565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596612f31575b50612e7f57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615c0f5f395f51905f528103612f1f5750823b15612f0d575f516020615c0f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115612ef457612ef091615ac5565b5080f35b505034612efe5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612f61575b81612f4d60209383613632565b81010312612f5d5751945f612e66565b5f80fd5b3d9150612f40565b63703e46dd60e11b8252600482fd5b5f516020615c0f5f395f51905f52546001600160a01b0316141590505f612e2d565b5034610341578060031936011261034157612fb3613c7d565b5f516020615c4f5f395f51905f525460ff81161561300b5760ff19165f516020615c4f5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461034157602036600319011261034157613034613573565b61303c613c7d565b5f516020615c2f5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b503461034157806003193601126103415761308761380d565b5060406130ab6130a65f516020615c2f5f395f51905f525442906155db565b613825565b60208251918051835201516020820152f35b5034610341576060366003190112610341576130d7613547565b6130df613cb0565b6130ed60243560043561414d565b506001600160a01b03908116919081166131755750335b5f516020615c2f5f395f51905f5254600501546001600160a01b0316823b1561081857604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af1801561099f5761098657602082604051908152f35b613104565b50346103415780600319360112610341576020610a4f61556c565b50346103415780600319360112610341576020805f516020615c2f5f395f51905f52540154604051908152f35b5034610341578060031936011261034157602060015f516020615c2f5f395f51905f52540154604051908152f35b50346103415780600319360112610341576020601e5f516020615c2f5f395f51905f52540154604051908152f35b503461034157602036600319011261034157613238613c7d565b600435601e5f516020615c2f5f395f51905f5254015580f35b5034610341576101003660031901126103415761326c613547565b6064356001600160801b03811690818103610818578360a43560ff8116810361099b57613297613cb0565b6132a560243560043561414d565b6006015490936001600160a01b0390911691823b15610818576132ec8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016137ab565b038183885af161340a575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156133ff5785916133e0575b50156133d1576001600160a01b03908116929081166133cb575033905b5f516020615c2f5f395f51905f5254600501546001600160a01b0316833b156109aa57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af1801561099f5761098657602082604051908152f35b9061335c565b631e4e7d0960e21b8452600484fd5b6133f9915060203d602011610717576107098183613632565b5f61333f565b6040513d87823e3d90fd5b8161341491613632565b61074657825f6132f7565b34612f5d576080366003190112612f5d57613438613547565b61344061355d565b90613449613cb0565b613457602435600435613cd7565b506001600160a01b03908116919081166134e4575033915b813b15612f5d57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af19182156134d9576020926134c9575b50604051908152f35b5f6134d391613632565b5f6134c0565b6040513d5f823e3d90fd5b9161346f565b34612f5d576020366003190112612f5d57613503613c7d565b600435601f5f516020615c2f5f395f51905f525401555f80f35b34612f5d575f366003190112612f5d57602090601c5f516020615c2f5f395f51905f525401548152f35b604435906001600160a01b0382168203612f5d57565b606435906001600160a01b0382168203612f5d57565b600435906001600160a01b0382168203612f5d57565b35906001600160a01b0382168203612f5d57565b35906001600160801b0382168203612f5d57565b606081019081106001600160401b038211176135cc57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176135cc57604052565b61018081019081106001600160401b038211176135cc57604052565b608081019081106001600160401b038211176135cc57604052565b90601f801991011681019081106001600160401b038211176135cc57604052565b9291926001600160401b0382116135cc576040519161367c601f8201601f191660200184613632565b829481845281830111612f5d578281602093845f960137010152565b9080601f83011215612f5d578160206136b393359101613653565b90565b9181601f84011215612f5d578235916001600160401b038311612f5d576020808501948460051b010111612f5d57565b600311156136f057565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106137455750505090565b82516001600160a01b0316845260209384019390920191600101613738565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606137a2604085015160a08386015260a0850190613728565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612f5d57518015158103612f5d5790565b6040519061381a826135e0565b5f6020838281520152565b90604051613832816135e0565b602060018294805484520154910152565b60405190613852604083613632565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b6040519061387f604083613632565b60018252603160f81b6020830152565b9190820391821161389c57565b634e487b7160e01b5f52601160045260245ffd5b81156138ba570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612f5d575160ff81168103612f5d5790565b60ff16604d811161389c57600a0a90565b8181029291811591840414171561389c57565b9190826040910312612f5d57604051613923816135e0565b6020808294803584520135910152565b6001600160401b0381116135cc5760051b60200190565b92919061395681613933565b936139646040519586613632565b602085838152019160051b8101928311612f5d57905b82821061398657505050565b6020809161399384613589565b81520191019061397a565b9190820180921161389c57565b91908110156139bb5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139bb5760209160051b010190565b906040516139f0816135e0565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612f5d5790565b613a3e5f516020615c2f5f395f51905f525442906155db565b600301905f5b838110613a545750505050600190565b613a626115438286856139ab565b6001600160a01b03165f9081526020849052604090205460ff1615613a8957600101613a44565b505050505f90565b60405190613a9e826135b1565b5f6040838281528260208201520152565b90604051613abc816135b1565b60406002829480548452600181015460208501520154910152565b60405190613ae482613617565b5f606083604051613af4816135e0565b83815283602082015281528260208201528160408201520152565b60405190613b1c82613617565b815f81525f6020820152613b2e613ad7565b60408201526060613b3d613ad7565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613b73575050613b7192500383613632565b565b84546001600160a01b0316835260019485019487945060209093019201613b5c565b3560ff81168103612f5d5790565b3565ffffffffffff81168103612f5d5790565b60205f516020615c2f5f395f51905f5254015490613bd3816136e6565b80613bdf575060101c90565b90600160ff92613bee816136e6565b03613bfa5760081c1690565b1690565b5f19811461389c5760010190565b6001600160a01b03168015613c6a575f516020615bcf5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615bcf5f395f51905f52546001600160a01b03163303613c9d57565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615c4f5f395f51905f525416613cc857565b63d93c066560e01b5f5260045ffd5b9190915f516020615c2f5f395f51905f52549260018401541561008257815f5260198401602052600260ff60405f205416613d11816136e6565b0361413e57815f5260205260405f206040516103008101908082106001600160401b03831117612f5d576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612f5d5760018060a01b0382165f52601a84016020528060405f2055601b84016141038154613bfe565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615c2f5f395f51905f52549260018401541561008257815f5260198401602052600260ff60405f205416614187816136e6565b0361413e57815f5260205260405f2060405160608101908082106001600160401b03831117612f5d57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612f5d5760018060a01b0382165f52601a84016020528060405f2055601b84016141038154613bfe565b61424d613a91565b5063ffffffff43116142aa5765ffffffffffff421161429257604051614272816135b1565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b8281106142d057505050565b5f828201556001016142c4565b90600182811c9216801561430b575b60208310146142f757565b634e487b7160e01b5f52602260045260245ffd5b91607f16916142ec565b604051905f825f516020615baf5f395f51905f525491614334836142dd565b80835292600181169081156143c35750600114614358575b613b7192500383613632565b505f516020615baf5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106143a7575050906020613b719282010161434c565b602091935080600191548385890101520191019091849261438f565b60209250613b7194915060ff191682840152151560051b82010161434c565b604051905f825f516020615bef5f395f51905f525491614401836142dd565b80835292600181169081156143c3575060011461442457613b7192500383613632565b505f516020615bef5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310614473575050906020613b719282010161434c565b602091935080600191548385890101520191019091849261445b565b435f198101939290841161389c5760ff164381106144df57505f925b838110156144bb575b505f925050565b80408281036144cd5750600193505050565b156144da575f19016144ab565b6144b4565b6144e9904361388f565b926144ab565b903590601e1981360301821215612f5d57018035906001600160401b038211612f5d57602001918160051b36038313612f5d57565b903590605e1981360301821215612f5d570190565b9060808101600161454a82846144ef565b905011614a205761455b81836144ef565b9050156149f95761456b916144ef565b156139bb578061457a91614524565b9161458583806144ef565b9190928260051b938385046020148415171561389c576145a78596949561576f565b925f945f97601a61013e19853603019501965b888a101561495c578960051b85013586811215612f5d5785016145dc81613a11565b6001600160a01b03165f90815260208a9052604090205415610064575f60808201916001600160801b0361460f84615677565b16151580614949575b614938575b6001600160a01b0361462e82613a11565b60405163f76207bb60e01b81526020600482015294911691906101648501906001600160801b03906146ad906001600160a01b0361466b86613589565b1660248901526020850135604489015261468760408601614e42565b151560648901526001600160a01b036146a260608701613589565b16608489015261359d565b1660a48601526146bf60a08301614e42565b151560c486015260c0820135601e1983360301811215612f5d578201602081359101916001600160401b038211612f5d576060820236038313612f5d5761014060e4880152819052859392916101848501915f905b8082106148e65750505061472b60e083018361568b565b602319868403016101048701528083526020600582901b840181019390810191905f908460de1936829003015b8484106148195750505050505050916001600160801b03846147bf846147ac6147a060209a9861478d610100879a018561568b565b8783036023190161012489015290615710565b9161012081019061568b565b8483036023190161014486015290615710565b039316905af19081156134d9575f916147e7575b50816020916001938a0152019901986145ba565b90506020813d8211614811575b8161480160209383613632565b81010312612f5d575160016147d3565b3d91506147f4565b91939597989950919395601f19848203018752873582811215612f5d578301803582526001600160a01b0361485060208301613589565b16602083015261487761486660408301836156bf565b60e0604086015260e08501916156f0565b906001600160801b0361488c6060830161359d565b1660608401526080810135608084015260a08101359163ffffffff60e01b8316809303612f5d578360c06148cd8160209695879660a060019a015201614e42565b1515910152990197019401918b99989796959391614758565b91939495509160608060019286358152838060a01b0361490860208901613589565b1660208201526001600160801b036149226040890161359d565b1660408201520194019201879594939291614714565b905061494382615677565b9061461d565b5061495660a08201614a64565b15614618565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a10135806149ca575b604051916020830193845260408301526060820152606081526149c4608082613632565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a16149a0565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612f5d57018035906001600160401b038211612f5d57602001918160061b36038313612f5d57565b358015158103612f5d5790565b60c082016001614a8182856144ef565b905011614e0157614a9281846144ef565b9050156149f957614aa390836144ef565b156139bb57803590607e1981360301821215612f5d57019160608301906020614acb83613ba3565b91019065ffffffffffff80614adf84613ba3565b1691161015614df257614af182613ba3565b65ffffffffffff80600286015460201c16911610614de357614b3765ffffffffffff614b30614b2a82614b2387613ba3565b1687615794565b93613ba3565b1684615794565b1115614dd4576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614b7d83614b758989614524565b01358b61399e565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156134d9575f91614db5575b5015614da6575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156134d9575f95614d6e575b5090614c0291614524565b91614c0c82613ba3565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612f5d578101602081359101936001600160401b038211612f5d578160061b36038513612f5d5760606044890152819052869360c485019392915f5b818110614d3657505050836020959365ffffffffffff829484895f9601356064860152614ca5604060018060a01b039201613589565b16608485015216602483015203925af19182156134d9575f92614d00575b50614ccd90613ba3565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526149c4606682613632565b9091506020813d602011614d2e575b81614d1c60209383613632565b81010312612f5d575190614ccd614cc3565b3d9150614d0f565b919550919293604080600192838060a01b03614d518a613589565b168152602089013560208201520196019101918895949392614c6f565b919094506020823d602011614d9e575b81614d8b60209383613632565b81010312612f5d57905193614c02614bf7565b3d9150614d7e565b6367b9145160e01b5f5260045ffd5b614dce915060203d602011610717576107098183613632565b5f614baa565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612f5d57018035906001600160401b038211612f5d57602001918136038313612f5d57565b35908115158203612f5d57565b9060e081016001614e6082846144ef565b9050116152c957614e7181836144ef565b9050156149f957614e81916144ef565b156139bb5780359060be1981360301821215612f5d570160808101614ea681836144ef565b9050156152ba5765ffffffffffff600284015460201c1691614ec8834261388f565b614ed7601686015480926138b0565b9360a0830135946001810180911161389c5785036152ab57614efc85614f02936138f8565b9061399e565b93614f1160178201548661388f565b421061529c57614f20906157bc565b916005830193428554101561528d57614f3883614a64565b9260208101906060810193612870614f74614f538785614e10565b9190614f5f85876144ef565b949091614f6c368a61390b565b943691613653565b976151d4575b50505f989798976003600489019801985b8854811015614fc2575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614f8b565b5090919293949596985f5b885181101561500e576001906001600160a01b03614feb828c6139cf565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614fcd565b50929598909396919497508151916001600160401b0383116135cc57600160401b83116135cc5760209082548484558085106151b9575b5001905f5260205f205f5b83811061519c5750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612f5d576040519260a08401908482106001600160401b038311176135cc576150c4916040526150bb84614e42565b8552369061390b565b9460208401958652356001600160401b038111612f5d576150e89036908401613698565b604084015235906001600160401b038211612f5d570136601f82011215612f5d5761511a90369060208135910161394a565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b81811061517a575050508152038082526149c49060200182613632565b82516001600160a01b031685528695506020948501949092019160010161515d565b82516001600160a01b031681830155602090920191600101615050565b6151ce90845f528580855f20019103906142c2565b5f615045565b8051906020810191825170014551231950b75fc4402da1732fc9bebe198210918261527c575b50501561526d5751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561526057526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614f7a565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6152869250615b8b565b5f806151fa565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c166152f74284615794565b61530f615309601686015480936138f8565b8361399e565b91828410808061552b575b156154f9575083106154eb57615330908361399e565b106154dc57615340905b826155db565b94601960f81b5f523060601b60025260165260365f209360028110156136f057806153d1575050600181036153c257156139bb576153818161538892614e10565b3691613653565b9160608351036153b3578260206136b3940151606060408301519201519260018154910154906157d7565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146153e45750505050505f90565b61540990600860048796970154910154906001600160801b038260801c921690615541565b925f9260035f9201915b868110156154d1576154396105a96154336153818460051b860186614e10565b86615b51565b6001600160a01b0381165f9081526020859052604090205460ff16615464575b506001905b01615413565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c156154a9575060019061545e565b9460016154b792965d613bfe565b938585146154c5575f615459565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b939291505042821161551c5761534092615514575b5061533a565b90505f61550e565b6347860b9760e01b5f5260045ffd5b5061553a60188701548561399e565b421061531a565b6001600160801b0380921602911661555981836138b0565b9181156138ba5706156136b35760010190565b615574614315565b602081519101206155836143e2565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526149c460c082613632565b906155e69082615a65565b156155f157600f0190565b60090190565b60ff5f516020615c6f5f395f51905f525460401c161561561357565b631afcd79f60e31b5f5260045ffd5b61562a613ad7565b506002810154600582015460405192909161566a916004916001600160a01b031661565486613617565b61565d82613825565b8652602086015201613b42565b6040830152606082015290565b356001600160801b0381168103612f5d5790565b9035601e1982360301811215612f5d5701602081359101916001600160401b038211612f5d578160051b36038313612f5d57565b9035601e1982360301811215612f5d5701602081359101916001600160401b038211612f5d578136038313612f5d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90602083828152019260208260051b82010193835f925b8484106157375750505050505090565b90919293949560208061575f600193601f198682030188526157598b886156bf565b906156f0565b9801940194019294939190615727565b6040519190601f01601f191682016001600160401b03811183821017612f5d57604052565b60166157b36136b39365ffffffffffff600285015460201c169061388f565b910154906138b0565b6157c64282615a65565b156157d15760090190565b600f0190565b92939194906157e68587615b8b565b156159795782156159795770014551231950b75fc4402da1732fc9bebe19831015615979576001169061010e61581b8161576f565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156154d15784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116159fa579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156134d9575f516001600160a01b038116156159f057905f905f90565b505f906001905f90565b5050505f9160039190565b60048110156136f05780615a17575050565b60018103615a2e5763f645eedf60e01b5f5260045ffd5b60028103615a49575063fce698f760e01b5f5260045260245ffd5b600314615a535750565b6335e2f38360e21b5f5260045260245ffd5b906014600e830154920154808314615ab657818184109311918215911115918190615aaf575b15615aa05782615a9a57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615a8b565b63f26224af60e01b5f5260045ffd5b905f8091602081519101845af48080615b3e575b15615af95750506040513d81523d5f602083013e60203d82010160405290565b15615b1e57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15615b2f576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580615ad95750813b1515615ad9565b8151919060418303615b8157615b7a9250602082015190606060408401519301515f1a90615983565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d019908009149056fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:51096:164:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;7983:34:18;7979:146;;-1:-1:-1;1553:51096:164;;;;;;;;1076:13:19;1553:51096:164;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;8085:29:18;;1553:51096:164;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;1553:51096:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613cb0565b5f516020615c2f5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e71461351d575080630b9737ce146134ea5780630c18d2771461341f5780630d91bf2a1461325157806311bec80d1461321e578063188509e9146131f057806328e24b3d146131c25780632ae9c600146131955780633644e5151461317a5780633683c4d2146130bd5780633bd109fa1461306e5780633d43b4181461301a5780633f4ba83a14612f9a5780634f1ef28614612dc257806352d1902d14612d5b57806353f7fd48146123aa5780635734c0e11461226a5780635c975abb1461223b5780636c2eb35014611ce4578063715018a614611c7b57806371a8cf2d14611c4d5780637ecebe0014611bf557806382bdeaad14611aee5780638456cb5914611a7b57806384b0196e146119c157806384d22a4f1461196357806388f50cf01461192a5780638b1edf1e146118cb5780638c4ace6a1461177f5780638da5cb5b1461174a5780638f381dbe146117045780639067088e146116bb57806396a2ddfa1461168d5780639eb939a814611634578063a5d53a44146115b4578063ad3cb1cc1461156b578063baaf02011461146e578063c13911e814611428578063c2eb812f14611084578063ca1e781914611034578063cacf66ab14610ffc578063d456fd5114610fc6578063e3a6684f14610f87578063e6fabc0914610f4e578063e9a28a6014610ab9578063ed01826214610a8f578063ed612f8c14610a57578063edc8722514610a02578063ee32004f1461081c578063f0fd702a146103d8578063f1ef31ec146103aa578063f2fde38b1461037d578063f4f20ac0146103445763facd743b0361000f573461034157602036600319011261034157610303613573565b600361031e5f516020615c2f5f395f51905f525442906155db565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103415780600319360112610341575f516020615c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610341576020366003190112610341576103a761039a613573565b6103a2613c7d565b613c0c565b80f35b50346103415780600319360112610341576020601f5f516020615c2f5f395f51905f52540154604051908152f35b503461034157610140366003190112610341576103f3613573565b602435906044356001600160401b038111610818576104169036906004016136b6565b90916064359060843560ff811681036108145760e4359060ff821682036108105761043f613cb0565b874915610801575f516020615c2f5f395f51905f5254946001860154156107f2576019860196888a528760205260ff60408b20541661047d816136e6565b6107e357895b80496107d5578083036107be5750895b82811061077757508542116107635760405160208101906001600160fb1b03841161075f576104de6020826105a9956105b29760051b8091873781010301601f198101835282613632565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261057760e082613632565b51902061058261556c565b906040519161190160f01b83526002830152602282015260c43591604260a4359220615983565b90929192615a05565b6001600160a01b031681810361074a57505086906105e760018060a01b0360068701541695601f601e8201549101549061399e565b93853b156107465760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610729575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af190811561071e5784916106ef575b50156106e05781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b610711915060203d602011610717575b6107098183613632565b8101906137f5565b5f610698565b503d6106ff565b6040513d86823e3d90fd5b8161073691949394613632565b6107425790855f61064b565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b8049806107858386866139ab565b35146107928386866139ab565b3590156107a3575050600101610493565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107de90613bfe565b610483565b6304c51a3360e31b8a5260048afd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b50346103415761012036600319011261034157610837613547565b61083f61355d565b6084356001600160801b038116908181036109aa578460c43560ff8116810361099b5761086a613cb0565b610878602435600435613cd7565b6006015490936001600160a01b0390911691823b15610818576108c08480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016137ab565b038183885af16109ed575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109e25786916109c3575b50156109b4576001600160a01b03908116939081166109ae575033915b833b156109aa57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099f57610986575b602082604051908152f35b610991838092613632565b61099b578161097b565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610930565b631e4e7d0960e21b8552600485fd5b6109dc915060203d602011610717576107098183613632565b5f610913565b6040513d88823e3d90fd5b816109f791613632565b61074657825f6108cb565b50346103415780600319360112610341576020610a4f5f516020615c2f5f395f51905f525460086004610a3542846155db565b0154910154906001600160801b038260801c921690615541565b604051908152f35b503461034157806003193601126103415760206004610a855f516020615c2f5f395f51905f525442906155db565b0154604051908152f35b503461034157602036600319011261034157600435906003821015610341576020610a4f83613bb6565b5034610341576060366003190112610341576001600160401b036004351161034157610100600435360360031901126103415760026024351015610341576044356001600160401b03811161099b57610b169036906004016136b6565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610f3f5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615c2f5f395f51905f525490600182015415610f3057815415610ed4575b60038201546044600435013503610ec55765ffffffffffff60048301541665ffffffffffff610bb5602460043501613ba3565b1610610eb757610bca60043560040183614539565b92610bdf60a460043501600435600401614a2f565b808096925060051b0460201485151715610ea357610bff8560051b61576f565b8695865b818810610d6f5750610d35965060051b902090610c2560043560040186614a71565b610c3460043560040187614e4f565b90610c43602460043501613ba3565b93610c52606460043501613b95565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610cb760e782613632565b5190209283600382015565ffffffffffff610cd6602460043501613ba3565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610d2a602460043501613ba3565b1693602435916152d8565b15610d6057807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610d8360a460043501600435600401614a2f565b891015610e8f578860061b8101358a5260198801602052600160ff60408c205416610dad816136e6565b03610e8057600191602091610e43838c60061b830101610dcc81614a64565b15610e5f5760068d901b8301358e5260198c01855260408e20805460ff19166002179055601c8c018054610dff90613bfe565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610e2e84614a64565b1515926040519060061b8701358152a2614a64565b908b60061b01358c52825360218b208186015201970196610c03565b60068d901b8301358e5260198c01855260408e20805460ff19169055610e02565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610ef1610ee5606460043501613b95565b6004356004013561448f565b15610f215765ffffffffffff610f0b602460043501613ba3565b164211610b8257631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103415780600319360112610341575f516020615c2f5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610341578060031936011261034157604060085f516020615c2f5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610341578060031936011261034157602065ffffffffffff60045f516020615c2f5f395f51905f5254015416604051908152f35b5034610341578060031936011261034157602065ffffffffffff60025f516020615c2f5f395f51905f52540154821c16604051908152f35b503461034157806003193601126103415761108061106c60046110665f516020615c2f5f395f51905f525442906155db565b01613b42565b604051918291602083526020830190613728565b0390f35b50346103415780600319360112610341576040516110a1816135fb565b6110a9613a91565b81526040516110b7816135e0565b5f8152602081015f905260208201526110ce613a91565b60408201526110db613b0f565b60608201526040516110ec816135e0565b5f80825260208201526080820152611102613a91565b60a08201528160c08201528160e082015281610100820152816101208201528161014082015261016001525f516020615c2f5f395f51905f5254611144613b0f565b5061115160098201615622565b9061115e600f8201615622565b6008820154926040519361117185613617565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e830154601f84015491602085015493604051966111c1886135fb565b6040516111cd816135b1565b60018801548152600288015463ffffffff8116602083015260201c65ffffffffffff1660408201528852604051986112048a6135e0565b60038801548a52600488015465ffffffffffff1660208b015260208901998a5260405190611231826135b1565b60058901546001600160a01b03908116835260068a01548116602084015260078a0154166040808401919091528a0191825260608a0190815261127660158a016139e3565b9860808b01998a5260160161128a90613aaf565b9160a08b0192835260c08b0193845260e08b019485526101008b019586526101208b019687526101408b019788526101608b019889526040519b8c9b60208d52518c815190602001528c602082015163ffffffff1690604001526040015165ffffffffffff1660608d015251805160808d01526020015165ffffffffffff1660a08c015251600160a01b6001900381511660c08c0152600160a01b6001900360208201511660e08c0152600160a01b600190039060400151166101008b0152516101208a01610280905280516001600160801b03166102a08b015260208101516001600160801b03166102c08b015260408101516102e08b01608090526103208b0161139591613764565b90606001519061029f198b8203016103008c01526113b291613764565b975180516001600160401b03166101408b0152602001516001600160801b03166101608a01525180516101808a015260208101516101a08a0152604001516101c0890152516101e0880152516102008701525161ffff166102208601525161024085015251610260840152516102808301520390f35b50346103415760203660031901126103415760ff604060209260195f516020615c2f5f395f51905f525401600435825284522054166040519061146a816136e6565b8152f35b5034610341576020366003190112610341576004356001600160401b03811161099b5761149f9036906004016136b6565b905f516020615c2f5f395f51905f5254906114b983613933565b916114c76040519384613632565b8383526114d384613933565b602084019490601f1901368637601a869201915b81811061153257868587604051928392602084019060208552518091526040840192915b818110611519575050500390f35b825184528594506020938401939092019160010161150b565b8061154861154360019385886139ab565b613a11565b828060a01b03165f528360205260405f205461156482886139cf565b52016114e7565b50346103415780600319360112610341575061108060405161158e604082613632565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613704565b50346103415780600319360112610341575f516020615c2f5f395f51905f52546001600160a01b03906002906115eb9042906155db565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c80825201906040820191826040526020835261162f603f19926060830190613704565b030190f35b503461034157806003193601126103415761164d613a91565b50606061166a60165f516020615c2f5f395f51905f525401613aaf565b61168b60405180926040809180518452602081015160208501520151910152565bf35b50346103415780600319360112610341576020601b5f516020615c2f5f395f51905f52540154604051908152f35b5034610341576020366003190112610341576116d5613573565b601a5f516020615c2f5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461034157602036600319011261034157600435906001600160401b03821161034157602061174061173a36600486016136b6565b90613a25565b6040519015158152f35b50346103415780600319360112610341575f516020615bcf5f395f51905f52546040516001600160a01b039091168152602090f35b50346103415760a03660031901126103415760043560443560ff81168103610746576117a9613cb0565b8249156118bc575f516020615c2f5f395f51905f5254600181015415610f305760198101918385528260205260ff6040862054166117e6816136e6565b6118ad576006820154601e9092015485926001600160a01b031691823b156108185760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611898575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610686565b816118a291613632565b61074657825f611863565b6304c51a3360e31b8552600485fd5b637bb2fa2f60e11b8352600483fd5b50346103415780600319360112610341575f516020615c2f5f395f51905f52546001810190815461191b576002015463ffffffff164090811561190c575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103415780600319360112610341575f516020615c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b503461034157806003193601126103415761197c61380d565b50604061199960155f516020615c2f5f395f51905f5254016139e3565b61168b825180926001600160801b03602080926001600160401b038151168552015116910152565b5034610341578060031936011261034157611a1f906119de614315565b906119e76143e2565b906020611a2d604051936119fb8386613632565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613704565b908682036040880152613704565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a6457505050500390f35b835185528695509381019392810192600101611a55565b5034610341578060031936011261034157611a94613c7d565b611a9c613cb0565b600160ff195f516020615c4f5f395f51905f525416175f516020615c4f5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610341576020366003190112610341576004356001600160401b03811161099b57611b1f9036906004016136b6565b905f516020615c2f5f395f51905f525490611b3983613933565b91611b476040519384613632565b838352611b5384613933565b602084019490601f19013686376019869201915b818110611bbe57868587604051928392602084019060208552518091526040840192915b818110611b99575050500390f35b919350916020806001928651611bae816136e6565b8152019401910191849392611b8b565b80611bcc60019284876139ab565b3588528360205260ff604089205416611be582886139cf565b611bee826136e6565b5201611b67565b5034610341576020366003190112610341576020906040906001600160a01b03611c1d613573565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610341578060031936011261034157602060035f516020615c2f5f395f51905f52540154604051908152f35b5034610341578060031936011261034157611c94613c7d565b5f516020615bcf5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610341578060031936011261034157611cfd613c7d565b5f516020615c6f5f395f51905f525460ff8160401c16908115612226575b50612217575f516020615c6f5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615bcf5f395f51905f5254611d75906001600160a01b0316611d6d6155f7565b6103a26155f7565b611d7d613843565b90611d86613870565b90611d8f6155f7565b611d976155f7565b82516001600160401b03811161211a57611dbe5f516020615baf5f395f51905f52546142dd565b601f81116121b3575b506020601f82116001146121395782939482939261212e575b50508160011b915f199060031b1c1916175f516020615baf5f395f51905f52555b81516001600160401b03811161211a57611e285f516020615bef5f395f51905f52546142dd565b601f81116120ad575b50602092601f821160011461203457928293829392612029575b50508160011b915f199060031b1c1916175f516020615bef5f395f51905f52555b5f516020615c2f5f395f51905f5254611e83614245565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611ed1816135e0565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611efc42846155db565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099f57611f4d918491611ffa575b506138e7565b806103e8026103e881048203611fe657601e830155806101f402906101f4820403611fd257601f820155602061010091015560ff60401b195f516020615c6f5f395f51905f5254165f516020615c6f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b61201c915060203d602011612022575b6120148183613632565b8101906138ce565b5f611f47565b503d61200a565b015190505f80611e4b565b601f198216935f516020615bef5f395f51905f52845280842091845b868110612095575083600195961061207d575b505050811b015f516020615bef5f395f51905f5255611e6c565b01515f1960f88460031b161c191690555f8080612063565b91926020600181928685015181550194019201612050565b81811115611e31575f516020615bef5f395f51905f52835261210c907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510612112575b601f82910160051c0391016142c2565b5f611e31565b8591506120fc565b634e487b7160e01b82526041600452602482fd5b015190505f80611de0565b5f516020615baf5f395f51905f52835280832090601f198316845b81811061219b57509583600195969710612183575b505050811b015f516020615baf5f395f51905f5255611e01565b01515f1960f88460031b161c191690555f8080612169565b9192602060018192868b015181550194019201612154565b81811115611dc7575f516020615baf5f395f51905f528352612211907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c906020851061211257601f82910160051c0391016142c2565b5f611dc7565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611d1b565b5034610341578060031936011261034157602060ff5f516020615c4f5f395f51905f5254166040519015158152f35b503461034157602036600319011261034157600435600381101561099b57612290613c7d565b60205f516020615c2f5f395f51905f5254019081548060101c9160ff8260081c169060ff8316906122c0816136e6565b8061230a575050505060018101809111611fd2577f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9160209160101b80915b55604051908152a180f35b6001919293945061231a816136e6565b03612362575060018101809111611fe657916020917f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9360081b9061ffff19161780916122ff565b91905060018201809211611fe657916020918361ff007f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec95169061ffff1916171780916122ff565b503461034157610160366003190112610341576123c5613573565b906024356001600160a01b0381169081900361099b576123e3613547565b926123ec61355d565b9260a43560c43560843560403660e31901126108185761012435966001600160401b0388116109aa57366023890112156109aa578760040135926001600160401b03841161074257366024858b01011161074257610144356001600160401b038111610814576124609036906004016136b6565b9590935f516020615c6f5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612d53575b6001149081612d49575b159081612d40575b50612d31576124e2908a60016001600160401b03195f516020615c6f5f395f51905f525416175f516020615c6f5f395f51905f5255612d01575b611d6d6155f7565b6124ea6155f7565b6124f2613843565b6124fa613870565b906125036155f7565b61250b6155f7565b8051906001600160401b038211612ced5781908b6125365f516020615baf5f395f51905f52546142dd565b601f8111612c9c575b5050602090601f8311600114612c20578c92612c15575b50508160011b915f199060031b1c1916175f516020615baf5f395f51905f52555b8051906001600160401b038211612c015781906125a15f516020615bef5f395f51905f52546142dd565b601f8111612b92575b50602090601f8311600114612b16578b92612b0b575b50508160011b915f199060031b1c1916175f516020615bef5f395f51905f52555b6125e96155f7565b4215612afc578115612aed5781811115612ade57600a612609838361388f565b04831015612acf576040809a81516126218382613632565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612654613c7d565b5f1991519020018a5260ff1960208b2016809e815f516020615c2f5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16126a9614245565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906126f3826135b1565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561276761380d565b508951612773816135e0565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906127b8816135b1565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa908115612ac55790612818918691611ffa57506138e7565b806103e8026103e881048203610ea357601e8a0155806101f402906101f4820403612ab1579061287891601f8a01556128708751986128568a6135e0565b60e4358a5260208a01946101043586526024369201613653565b93369161394a565b958051825170014551231950b75fc4402da1732fc9bebe1982109182612aa0575b505015612a915751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f0918215612a845752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156129415782845260208085208201546001600160a01b03165f90815290869052869020805460ff19169055600101612909565b509195949094865b8351811015612989576001906001600160a01b0361296782876139cf565b5116828060a01b03165f5285602052865f208260ff1982541617905501612949565b50925092938151916001600160401b038311612a7057600160401b8311612a70576020908254848455808510612a55575b500190865260208620865b838110612a38575050505042600e82015560206101009101556129e6575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615c6f5f395f51905f5254165f516020615c6f5f395f51905f52555160018152a180f35b82516001600160a01b0316818301556020909201916001016129c5565b612a6a90848a528580858c20019103906142c2565b5f6129ba565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b612aaa9250615b8b565b5f80612899565b634e487b7160e01b85526011600452602485fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f806125c0565b5f516020615bef5f395f51905f528c52818c209250601f1984168c5b818110612b7a5750908460019594939210612b62575b505050811b015f516020615bef5f395f51905f52556125e1565b01515f1960f88460031b161c191690555f8080612b48565b92936020600181928786015181550195019301612b32565b828111156125aa575f516020615bef5f395f51905f528c52612bf3907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e60208710612bf9575b50601f82910160051c0391016142c2565b5f6125aa565b91508e612be2565b634e487b7160e01b8a52604160045260248afd5b015190505f80612556565b5f516020615baf5f395f51905f528d52818d209250601f1984168d5b818110612c845750908460019594939210612c6c575b505050811b015f516020615baf5f395f51905f5255612577565b01515f1960f88460031b161c191690555f8080612c52565b92936020600181928786015181550195019301612c3c565b8381111561253f575f516020615baf5f395f51905f52612cde92528d6020812091601f860160051c9160208710612ce55750601f82910160051c0391016142c2565b8b5f61253f565b91508f612be2565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615c6f5f395f51905f525416175f516020615c6f5f395f51905f52556124da565b63f92ee8a960e01b8952600489fd5b9050155f6124a0565b303b159150612498565b8b915061248e565b50346103415780600319360112610341577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612db35760206040515f516020615c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261034157612dd7613573565b906024356001600160401b03811161099b57612df7903690600401613698565b916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612f78575b50612f6957612e3a613c7d565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596612f31575b50612e7f57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615c0f5f395f51905f528103612f1f5750823b15612f0d575f516020615c0f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115612ef457612ef091615ac5565b5080f35b505034612efe5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612f61575b81612f4d60209383613632565b81010312612f5d5751945f612e66565b5f80fd5b3d9150612f40565b63703e46dd60e11b8252600482fd5b5f516020615c0f5f395f51905f52546001600160a01b0316141590505f612e2d565b5034610341578060031936011261034157612fb3613c7d565b5f516020615c4f5f395f51905f525460ff81161561300b5760ff19165f516020615c4f5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461034157602036600319011261034157613034613573565b61303c613c7d565b5f516020615c2f5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b503461034157806003193601126103415761308761380d565b5060406130ab6130a65f516020615c2f5f395f51905f525442906155db565b613825565b60208251918051835201516020820152f35b5034610341576060366003190112610341576130d7613547565b6130df613cb0565b6130ed60243560043561414d565b506001600160a01b03908116919081166131755750335b5f516020615c2f5f395f51905f5254600501546001600160a01b0316823b1561081857604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af1801561099f5761098657602082604051908152f35b613104565b50346103415780600319360112610341576020610a4f61556c565b50346103415780600319360112610341576020805f516020615c2f5f395f51905f52540154604051908152f35b5034610341578060031936011261034157602060015f516020615c2f5f395f51905f52540154604051908152f35b50346103415780600319360112610341576020601e5f516020615c2f5f395f51905f52540154604051908152f35b503461034157602036600319011261034157613238613c7d565b600435601e5f516020615c2f5f395f51905f5254015580f35b5034610341576101003660031901126103415761326c613547565b6064356001600160801b03811690818103610818578360a43560ff8116810361099b57613297613cb0565b6132a560243560043561414d565b6006015490936001600160a01b0390911691823b15610818576132ec8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016137ab565b038183885af161340a575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156133ff5785916133e0575b50156133d1576001600160a01b03908116929081166133cb575033905b5f516020615c2f5f395f51905f5254600501546001600160a01b0316833b156109aa57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af1801561099f5761098657602082604051908152f35b9061335c565b631e4e7d0960e21b8452600484fd5b6133f9915060203d602011610717576107098183613632565b5f61333f565b6040513d87823e3d90fd5b8161341491613632565b61074657825f6132f7565b34612f5d576080366003190112612f5d57613438613547565b61344061355d565b90613449613cb0565b613457602435600435613cd7565b506001600160a01b03908116919081166134e4575033915b813b15612f5d57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af19182156134d9576020926134c9575b50604051908152f35b5f6134d391613632565b5f6134c0565b6040513d5f823e3d90fd5b9161346f565b34612f5d576020366003190112612f5d57613503613c7d565b600435601f5f516020615c2f5f395f51905f525401555f80f35b34612f5d575f366003190112612f5d57602090601c5f516020615c2f5f395f51905f525401548152f35b604435906001600160a01b0382168203612f5d57565b606435906001600160a01b0382168203612f5d57565b600435906001600160a01b0382168203612f5d57565b35906001600160a01b0382168203612f5d57565b35906001600160801b0382168203612f5d57565b606081019081106001600160401b038211176135cc57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176135cc57604052565b61018081019081106001600160401b038211176135cc57604052565b608081019081106001600160401b038211176135cc57604052565b90601f801991011681019081106001600160401b038211176135cc57604052565b9291926001600160401b0382116135cc576040519161367c601f8201601f191660200184613632565b829481845281830111612f5d578281602093845f960137010152565b9080601f83011215612f5d578160206136b393359101613653565b90565b9181601f84011215612f5d578235916001600160401b038311612f5d576020808501948460051b010111612f5d57565b600311156136f057565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106137455750505090565b82516001600160a01b0316845260209384019390920191600101613738565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606137a2604085015160a08386015260a0850190613728565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612f5d57518015158103612f5d5790565b6040519061381a826135e0565b5f6020838281520152565b90604051613832816135e0565b602060018294805484520154910152565b60405190613852604083613632565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b6040519061387f604083613632565b60018252603160f81b6020830152565b9190820391821161389c57565b634e487b7160e01b5f52601160045260245ffd5b81156138ba570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612f5d575160ff81168103612f5d5790565b60ff16604d811161389c57600a0a90565b8181029291811591840414171561389c57565b9190826040910312612f5d57604051613923816135e0565b6020808294803584520135910152565b6001600160401b0381116135cc5760051b60200190565b92919061395681613933565b936139646040519586613632565b602085838152019160051b8101928311612f5d57905b82821061398657505050565b6020809161399384613589565b81520191019061397a565b9190820180921161389c57565b91908110156139bb5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139bb5760209160051b010190565b906040516139f0816135e0565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612f5d5790565b613a3e5f516020615c2f5f395f51905f525442906155db565b600301905f5b838110613a545750505050600190565b613a626115438286856139ab565b6001600160a01b03165f9081526020849052604090205460ff1615613a8957600101613a44565b505050505f90565b60405190613a9e826135b1565b5f6040838281528260208201520152565b90604051613abc816135b1565b60406002829480548452600181015460208501520154910152565b60405190613ae482613617565b5f606083604051613af4816135e0565b83815283602082015281528260208201528160408201520152565b60405190613b1c82613617565b815f81525f6020820152613b2e613ad7565b60408201526060613b3d613ad7565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613b73575050613b7192500383613632565b565b84546001600160a01b0316835260019485019487945060209093019201613b5c565b3560ff81168103612f5d5790565b3565ffffffffffff81168103612f5d5790565b60205f516020615c2f5f395f51905f5254015490613bd3816136e6565b80613bdf575060101c90565b90600160ff92613bee816136e6565b03613bfa5760081c1690565b1690565b5f19811461389c5760010190565b6001600160a01b03168015613c6a575f516020615bcf5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615bcf5f395f51905f52546001600160a01b03163303613c9d57565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615c4f5f395f51905f525416613cc857565b63d93c066560e01b5f5260045ffd5b9190915f516020615c2f5f395f51905f52549260018401541561008257815f5260198401602052600260ff60405f205416613d11816136e6565b0361413e57815f5260205260405f206040516103008101908082106001600160401b03831117612f5d576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612f5d5760018060a01b0382165f52601a84016020528060405f2055601b84016141038154613bfe565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615c2f5f395f51905f52549260018401541561008257815f5260198401602052600260ff60405f205416614187816136e6565b0361413e57815f5260205260405f2060405160608101908082106001600160401b03831117612f5d57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612f5d5760018060a01b0382165f52601a84016020528060405f2055601b84016141038154613bfe565b61424d613a91565b5063ffffffff43116142aa5765ffffffffffff421161429257604051614272816135b1565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b8281106142d057505050565b5f828201556001016142c4565b90600182811c9216801561430b575b60208310146142f757565b634e487b7160e01b5f52602260045260245ffd5b91607f16916142ec565b604051905f825f516020615baf5f395f51905f525491614334836142dd565b80835292600181169081156143c35750600114614358575b613b7192500383613632565b505f516020615baf5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106143a7575050906020613b719282010161434c565b602091935080600191548385890101520191019091849261438f565b60209250613b7194915060ff191682840152151560051b82010161434c565b604051905f825f516020615bef5f395f51905f525491614401836142dd565b80835292600181169081156143c3575060011461442457613b7192500383613632565b505f516020615bef5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310614473575050906020613b719282010161434c565b602091935080600191548385890101520191019091849261445b565b435f198101939290841161389c5760ff164381106144df57505f925b838110156144bb575b505f925050565b80408281036144cd5750600193505050565b156144da575f19016144ab565b6144b4565b6144e9904361388f565b926144ab565b903590601e1981360301821215612f5d57018035906001600160401b038211612f5d57602001918160051b36038313612f5d57565b903590605e1981360301821215612f5d570190565b9060808101600161454a82846144ef565b905011614a205761455b81836144ef565b9050156149f95761456b916144ef565b156139bb578061457a91614524565b9161458583806144ef565b9190928260051b938385046020148415171561389c576145a78596949561576f565b925f945f97601a61013e19853603019501965b888a101561495c578960051b85013586811215612f5d5785016145dc81613a11565b6001600160a01b03165f90815260208a9052604090205415610064575f60808201916001600160801b0361460f84615677565b16151580614949575b614938575b6001600160a01b0361462e82613a11565b60405163f76207bb60e01b81526020600482015294911691906101648501906001600160801b03906146ad906001600160a01b0361466b86613589565b1660248901526020850135604489015261468760408601614e42565b151560648901526001600160a01b036146a260608701613589565b16608489015261359d565b1660a48601526146bf60a08301614e42565b151560c486015260c0820135601e1983360301811215612f5d578201602081359101916001600160401b038211612f5d576060820236038313612f5d5761014060e4880152819052859392916101848501915f905b8082106148e65750505061472b60e083018361568b565b602319868403016101048701528083526020600582901b840181019390810191905f908460de1936829003015b8484106148195750505050505050916001600160801b03846147bf846147ac6147a060209a9861478d610100879a018561568b565b8783036023190161012489015290615710565b9161012081019061568b565b8483036023190161014486015290615710565b039316905af19081156134d9575f916147e7575b50816020916001938a0152019901986145ba565b90506020813d8211614811575b8161480160209383613632565b81010312612f5d575160016147d3565b3d91506147f4565b91939597989950919395601f19848203018752873582811215612f5d578301803582526001600160a01b0361485060208301613589565b16602083015261487761486660408301836156bf565b60e0604086015260e08501916156f0565b906001600160801b0361488c6060830161359d565b1660608401526080810135608084015260a08101359163ffffffff60e01b8316809303612f5d578360c06148cd8160209695879660a060019a015201614e42565b1515910152990197019401918b99989796959391614758565b91939495509160608060019286358152838060a01b0361490860208901613589565b1660208201526001600160801b036149226040890161359d565b1660408201520194019201879594939291614714565b905061494382615677565b9061461d565b5061495660a08201614a64565b15614618565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a10135806149ca575b604051916020830193845260408301526060820152606081526149c4608082613632565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a16149a0565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612f5d57018035906001600160401b038211612f5d57602001918160061b36038313612f5d57565b358015158103612f5d5790565b60c082016001614a8182856144ef565b905011614e0157614a9281846144ef565b9050156149f957614aa390836144ef565b156139bb57803590607e1981360301821215612f5d57019160608301906020614acb83613ba3565b91019065ffffffffffff80614adf84613ba3565b1691161015614df257614af182613ba3565b65ffffffffffff80600286015460201c16911610614de357614b3765ffffffffffff614b30614b2a82614b2387613ba3565b1687615794565b93613ba3565b1684615794565b1115614dd4576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614b7d83614b758989614524565b01358b61399e565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156134d9575f91614db5575b5015614da6575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156134d9575f95614d6e575b5090614c0291614524565b91614c0c82613ba3565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612f5d578101602081359101936001600160401b038211612f5d578160061b36038513612f5d5760606044890152819052869360c485019392915f5b818110614d3657505050836020959365ffffffffffff829484895f9601356064860152614ca5604060018060a01b039201613589565b16608485015216602483015203925af19182156134d9575f92614d00575b50614ccd90613ba3565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526149c4606682613632565b9091506020813d602011614d2e575b81614d1c60209383613632565b81010312612f5d575190614ccd614cc3565b3d9150614d0f565b919550919293604080600192838060a01b03614d518a613589565b168152602089013560208201520196019101918895949392614c6f565b919094506020823d602011614d9e575b81614d8b60209383613632565b81010312612f5d57905193614c02614bf7565b3d9150614d7e565b6367b9145160e01b5f5260045ffd5b614dce915060203d602011610717576107098183613632565b5f614baa565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612f5d57018035906001600160401b038211612f5d57602001918136038313612f5d57565b35908115158203612f5d57565b9060e081016001614e6082846144ef565b9050116152c957614e7181836144ef565b9050156149f957614e81916144ef565b156139bb5780359060be1981360301821215612f5d570160808101614ea681836144ef565b9050156152ba5765ffffffffffff600284015460201c1691614ec8834261388f565b614ed7601686015480926138b0565b9360a0830135946001810180911161389c5785036152ab57614efc85614f02936138f8565b9061399e565b93614f1160178201548661388f565b421061529c57614f20906157bc565b916005830193428554101561528d57614f3883614a64565b9260208101906060810193612870614f74614f538785614e10565b9190614f5f85876144ef565b949091614f6c368a61390b565b943691613653565b976151d4575b50505f989798976003600489019801985b8854811015614fc2575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614f8b565b5090919293949596985f5b885181101561500e576001906001600160a01b03614feb828c6139cf565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614fcd565b50929598909396919497508151916001600160401b0383116135cc57600160401b83116135cc5760209082548484558085106151b9575b5001905f5260205f205f5b83811061519c5750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612f5d576040519260a08401908482106001600160401b038311176135cc576150c4916040526150bb84614e42565b8552369061390b565b9460208401958652356001600160401b038111612f5d576150e89036908401613698565b604084015235906001600160401b038211612f5d570136601f82011215612f5d5761511a90369060208135910161394a565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b81811061517a575050508152038082526149c49060200182613632565b82516001600160a01b031685528695506020948501949092019160010161515d565b82516001600160a01b031681830155602090920191600101615050565b6151ce90845f528580855f20019103906142c2565b5f615045565b8051906020810191825170014551231950b75fc4402da1732fc9bebe198210918261527c575b50501561526d5751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561526057526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614f7a565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6152869250615b8b565b5f806151fa565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c166152f74284615794565b61530f615309601686015480936138f8565b8361399e565b91828410808061552b575b156154f9575083106154eb57615330908361399e565b106154dc57615340905b826155db565b94601960f81b5f523060601b60025260165260365f209360028110156136f057806153d1575050600181036153c257156139bb576153818161538892614e10565b3691613653565b9160608351036153b3578260206136b3940151606060408301519201519260018154910154906157d7565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146153e45750505050505f90565b61540990600860048796970154910154906001600160801b038260801c921690615541565b925f9260035f9201915b868110156154d1576154396105a96154336153818460051b860186614e10565b86615b51565b6001600160a01b0381165f9081526020859052604090205460ff16615464575b506001905b01615413565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c156154a9575060019061545e565b9460016154b792965d613bfe565b938585146154c5575f615459565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b939291505042821161551c5761534092615514575b5061533a565b90505f61550e565b6347860b9760e01b5f5260045ffd5b5061553a60188701548561399e565b421061531a565b6001600160801b0380921602911661555981836138b0565b9181156138ba5706156136b35760010190565b615574614315565b602081519101206155836143e2565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526149c460c082613632565b906155e69082615a65565b156155f157600f0190565b60090190565b60ff5f516020615c6f5f395f51905f525460401c161561561357565b631afcd79f60e31b5f5260045ffd5b61562a613ad7565b506002810154600582015460405192909161566a916004916001600160a01b031661565486613617565b61565d82613825565b8652602086015201613b42565b6040830152606082015290565b356001600160801b0381168103612f5d5790565b9035601e1982360301811215612f5d5701602081359101916001600160401b038211612f5d578160051b36038313612f5d57565b9035601e1982360301811215612f5d5701602081359101916001600160401b038211612f5d578136038313612f5d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90602083828152019260208260051b82010193835f925b8484106157375750505050505090565b90919293949560208061575f600193601f198682030188526157598b886156bf565b906156f0565b9801940194019294939190615727565b6040519190601f01601f191682016001600160401b03811183821017612f5d57604052565b60166157b36136b39365ffffffffffff600285015460201c169061388f565b910154906138b0565b6157c64282615a65565b156157d15760090190565b600f0190565b92939194906157e68587615b8b565b156159795782156159795770014551231950b75fc4402da1732fc9bebe19831015615979576001169061010e61581b8161576f565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156154d15784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116159fa579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156134d9575f516001600160a01b038116156159f057905f905f90565b505f906001905f90565b5050505f9160039190565b60048110156136f05780615a17575050565b60018103615a2e5763f645eedf60e01b5f5260045ffd5b60028103615a49575063fce698f760e01b5f5260045260245ffd5b600314615a535750565b6335e2f38360e21b5f5260045260245ffd5b906014600e830154920154808314615ab657818184109311918215911115918190615aaf575b15615aa05782615a9a57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615a8b565b63f26224af60e01b5f5260045ffd5b905f8091602081519101845af48080615b3e575b15615af95750506040513d81523d5f602083013e60203d82010160405290565b15615b1e57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15615b2f576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580615ad95750813b1515615ad9565b8151919060418303615b8157615b7a9250602082015190606060408401519301515f1a90615983565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d019908009149056fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:51096:164:-:0;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;1965:72:60;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;52354:19;;;1553:51096;52354:38;1553:51096;;-1:-1:-1;;;;;52463:9:164;1553:51096;52491:9;1553:51096;;52551:10;-1:-1:-1;1553:51096:164;;;52579:28;;;;;1553:51096;;;;;;52579:42;1553:51096;;;;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20959:38;1553:51096;20959:38;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;15778:40;29503:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29524:15:168;29503:37;;:::i;:::-;15778:40:164;:52;1553:51096;;;;;;-1:-1:-1;1553:51096:164;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;13902:34;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;2378:1:52;1553:51096:164;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;1553:51096:164;;;;;;;;;;;;;;;;20691:52;-1:-1:-1;;;;;;;;;;;1553:51096:164;20691:52;1553:51096;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;29121:11:164;;:16;1553:51096;;-1:-1:-1;;;;;;;;;;;1553:51096:164;29217:19;1553:51096;29217:19;;1553:51096;29217:38;1553:51096;;29310:19;;;1553:51096;;;;;;;;;;;;;;;;:::i;:::-;;;29420:29;29490:27;;;;;29632:39;;;1553:51096;;29752:13;;29767:22;;;;;;30046:15;;;:28;1553:51096;;;;;30310:29;;;-1:-1:-1;;;;;2659:66:164;;;;30310:29;1553:51096;2659:66;8977:25:40;2659:66:164;9031:8:40;2659:66:164;;;;;;;;;30310:29;;1553:51096;;30310:29;;;;;;:::i;:::-;1553:51096;30300:40;;1553:51096;;;;;;;;;;;;993:64:59;1553:51096:164;;;;;;;;;;;;;;;30159:261;1553:51096;30159:261;;1553:51096;2659:66;1553:51096;;2659:66;1553:51096;2659:66;;1553:51096;2659:66;1553:51096;2659:66;;1553:51096;;2659:66;;1553:51096;;2659:66;;1553:51096;2659:66;1553:51096;2659:66;;1553:51096;;30159:261;;;1553:51096;30159:261;;:::i;:::-;1553:51096;30136:294;;3785:23:61;;:::i;:::-;4037:249:43;1553:51096:164;4037:249:43;;-1:-1:-1;;;4037:249:43;;;;;;;;;;1553:51096:164;;;4037:249:43;1553:51096:164;;4037:249:43;;8977:25:40;:::i;:::-;9031:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:51096:164;30564:20;;;2659:66;;1553:51096;;;;30742:100;1553:51096;;;;;30672:32;;;1553:51096;;30742:48;30793:49;30742:48;;;1553:51096;30793:49;;1553:51096;30742:100;;:::i;:::-;30856:77;;;;;;1553:51096;;-1:-1:-1;;;30856:77:164;;-1:-1:-1;;;;;1553:51096:164;;;30856:77;;1553:51096;30896:4;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30856:77;;;;;29747:223;-1:-1:-1;1553:51096:164;;-1:-1:-1;;;30969:57:164;;-1:-1:-1;;;;;1553:51096:164;;;;30969:57;;1553:51096;30896:4;1553:51096;;;;;;;;;;;;;;;;;;;;;;;30969:57;;;;;;;;;;;;;;29747:223;1553:51096;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;31172:32;;;1553:51096;;;-1:-1:-1;;;1553:51096:164;;;;;30969:57;;;;1553:51096;30969:57;1553:51096;30969:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:51096;;;;;;;;;30856:77;;;;;;;;:::i;:::-;1553:51096;;30856:77;;;;;1553:51096;;;;30856:77;1553:51096;;;2659:66;-1:-1:-1;;;2659:66:164;;1553:51096;;;;;2659:66;;;1553:51096;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;29791:3;29837:11;;29870:14;;;;;;:::i;:::-;1553:51096;29870:34;29925:14;;;;;:::i;:::-;1553:51096;;;;;29791:3;;1553:51096;;29752:13;;1553:51096;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;29459:155;29584:19;;;:::i;:::-;29459:155;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;38761:37:164;1553:51096;;;;38761:37;:::i;:::-;38850:32;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;38898:96;;;;;;1553:51096;;;;;;;;;;;;38898:96;;1553:51096;;;;;;;;38938:4;;38918:10;1553:51096;38898:96;;;:::i;:::-;;;;;;;;;1553:51096;-1:-1:-1;;1553:51096:164;;-1:-1:-1;;;39030:79:164;;38918:10;1553:51096;39030:79;;1553:51096;38938:4;1553:51096;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;39030:79;;;;;;;;;;;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;39225:70;1553:51096;;;;38918:10;;39225:70;;39168:238;;;;;1553:51096;;-1:-1:-1;;;39168:238:164;;-1:-1:-1;;;;;1553:51096:164;;;;39168:238;;1553:51096;;;;;;;;;;;;;;;;;;;;;;39168:238;;;;;;;;;39225:70;1553:51096;;;;;;;;39168:238;;;;;;:::i;:::-;1553:51096;;39168:238;;;1553:51096;;;;39168:238;1553:51096;;;;;;;;;39168:238;1553:51096;;;39225:70;;;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;39030:79;;;;1553:51096;39030:79;1553:51096;39030:79;;;;;;;:::i;:::-;;;;;1553:51096;;;;;;;;;38898:96;;;;;:::i;:::-;1553:51096;;38898:96;;;;1553:51096;;;;;;;;;;;;;;17223:211;-1:-1:-1;;;;;;;;;;;1553:51096:164;17320:25;1553:51096;29503:37:168;29524:15;29503:37;;:::i;:::-;17261:38:164;1553:51096;17320:25;;1553:51096;;-1:-1:-1;;;;;1553:51096:164;;;;;17223:211;;:::i;:::-;1553:51096;;;;;;;;;;;;;;;;;;;;;29503:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29524:15:168;29503:37;;:::i;:::-;16837:41:164;1553:51096;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1553:51096:164;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;661:66:35;3327:69:39;1860:93:35;;2268:4;661:66;3556:68:39;-1:-1:-1;;;;;;;;;;;1553:51096:164;40137:19;2268:4:35;40137:19:164;;1553:51096;40137:38;1553:51096;;;;40375:20;40371:295;;1553:51096;40779:27;;;1553:51096;;;;40815:33;1553:51096;40779:69;1553:51096;;;;40914:37;;1553:51096;;;40955:21;1553:51096;;;40955:21;;:::i;:::-;1553:51096;-1:-1:-1;1553:51096:164;;41045:28;1553:51096;;;;41045:28;;:::i;:::-;1553:51096;44034:22;;1553:51096;;44034:22;1553:51096;;;;44034:22;:::i;:::-;2355:5;;;;;;;;1553:51096;2355:5;;;;;;;44169:40;2355:5;;;44169:40;:::i;:::-;44219:18;;;44268:22;;;;;;2355:5;41843:146;2355:5;;;;1083:131:88;;1553:51096:164;41185:30;1553:51096;;;;41185:30;;:::i;:::-;41261:33;1553:51096;;;;41261:33;;:::i;:::-;1553:51096;41394:21;1553:51096;;;40955:21;41394;:::i;:::-;1553:51096;41476:13;;1553:51096;;41476:13;;:::i;:::-;1553:51096;;;20738:303:168;1553:51096:164;20738:303:168;;1553:51096:164;;;;;;;;2277:3;1553:51096;;;;;;;;;;;;;40815:33;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20738:303:168;;;;;;:::i;:::-;1553:51096:164;20715:336:168;;40779:27:164;;;;;1553:51096;;41748:21;1553:51096;;;40955:21;41748;:::i;:::-;1553:51096;2277:3;1553:51096;;40914:37;;1553:51096;;;;40914:37;;1553:51096;41785:26;1553:51096;;;;;;41785:26;1553:51096;41954:21;1553:51096;;;40955:21;41954;:::i;:::-;1553:51096;;;;41843:146;;:::i;:::-;2102:66;;;3556:68:39;661:66:35;3556:68:39;1553:51096:164;;2102:66;-1:-1:-1;;;2102:66:164;;1553:51096;;2102:66;44292:3;44354:22;44034;1553:51096;;44034:22;1553:51096;;;;44354:22;:::i;:::-;1553:51096;;;;;;;;;;;;;44419:19;;;1553:51096;;2268:4:35;1553:51096:164;;;;;;;;;:::i;:::-;44419:79;1553:51096;;2268:4:35;1553:51096:164;;;44997:17;1553:51096;;;;;;44577:17;;;;:::i;:::-;;;;1553:51096;;;;;;;;;44419:19;;;1553:51096;;;;;;;-1:-1:-1;;1553:51096:164;;;;;44700:39;;;1553:51096;;44700:41;;;:::i;:::-;1553:51096;;44573:270;44895:17;44862:51;44895:17;;;;:::i;:::-;1553:51096;;;;;;;;;;;;;44862:51;44997:17;:::i;:::-;1553:51096;;;;;;18441:159:168;;;;;;;4093:83:85;;;;1553:51096:164;44292:3;1553:51096;44253:13;;;44573:270;1553:51096;;;;;;;;;44419:19;;;1553:51096;;;;;;;-1:-1:-1;;1553:51096:164;;;44573:270;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;2355:5;-1:-1:-1;;;2277:3:164;;;1553:51096;2277:3;1553:51096;;2277:3;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;40371:295;40419:56;40461:13;;1553:51096;;40461:13;;:::i;:::-;1553:51096;;;;;40419:56;:::i;:::-;1553:51096;;;;40606:21;1553:51096;;;40606:21;;:::i;:::-;1553:51096;40588:15;:39;40371:295;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;1860:93:35;-1:-1:-1;;;1912:30:35;;1553:51096:164;1912:30:35;;1553:51096:164;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;13359:23;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;16266:25;-1:-1:-1;;;;;;;;;;;1553:51096:164;16266:25;1553:51096;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;13091:40;1553:51096;;;;;;;;;;;;;;;;;;;;;;;12501:32;-1:-1:-1;;;;;;;;;;;1553:51096:164;12501:32;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;29503:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29524:15:168;29503:37;;:::i;:::-;16576:41:164;1553:51096;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;:::i;:::-;-1:-1:-1;34844:28:168;34851:20;;;34844:28;:::i;:::-;34930:20;34923:28;34930:20;;;34923:28;:::i;:::-;11208:25:164;;;1553:51096;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:51096:164;;;;;;;34968:241:168;;1553:51096:164;;34968:241:168;;1553:51096:164;;34968:241:168;;1553:51096:164;11597:33;;;1553:51096;11665:39;;;;1553:51096;11733:33;;;1553:51096;;;11810:48;;;1553:51096;11903:49;;;1553:51096;11983:35;1553:51096;11983:35;;1553:51096;;;;;;;;:::i;:::-;;;;;;:::i;:::-;34851:20:168;11291:19:164;;1553:51096;;;11597:33;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11346:27;;;1553:51096;;;;;;;;;;;;;;11251:778;;1553:51096;;;;;;;;;:::i;:::-;11402:20;;;1553:51096;-1:-1:-1;;;;;1553:51096:164;;;2277:3;;11903:49;1553:51096;;;;;;;;2277:3;34930:20:168;1553:51096:164;;;;;;;;2277:3;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11505:22;;;1553:51096;:::i;:::-;11251:778;1553:51096;11251:778;;1553:51096;;;11552:16;;1553:51096;;;:::i;:::-;11251:778;1553:51096;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;11251:778;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;18189:22;-1:-1:-1;;;;;;;;;;;1553:51096:164;18189:22;1553:51096;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:51096:164;;;;19426:28;19358:13;19426:28;;19353:129;19373:23;;;;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;19426:28;1553:51096;;;19398:3;19455:15;;;19426:28;19455:15;;;;:::i;:::-;;:::i;:::-;1553:51096;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;19417:54;;;;:::i;:::-;1553:51096;;19358:13;;1553:51096;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;14899:77;;29503:37:168;;29524:15;;29503:37;:::i;:::-;14899:77:164;1553:51096;;;9308:329:170;1553:51096:164;;;;;9308:329:170;;;;;;;;;;;;;;;;;;;;1553:51096:164;9308:329:170;;;;1553:51096:164;9308:329:170;1553:51096:164;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21990:19;-1:-1:-1;;;;;;;;;;;1553:51096:164;21990:19;1553:51096;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19698:36;-1:-1:-1;;;;;;;;;;;1553:51096:164;19698:36;1553:51096;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;18951:31;-1:-1:-1;;;;;;;;;;;1553:51096:164;18951:31;:43;1553:51096;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;26462:11:164;;:16;1553:51096;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;26558:19;;1553:51096;26558:38;1553:51096;;26651:19;;;1553:51096;;;;;;;;;;;;;;;;:::i;:::-;;;26802:32;;;1553:51096;26864:48;;;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;26926:78;;;;;1553:51096;;-1:-1:-1;;;26926:78:164;;26946:10;1553:51096;26926:78;;1553:51096;26966:4;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26926:78;;;;;1553:51096;-1:-1:-1;;1553:51096:164;;-1:-1:-1;;;27040:61:164;;26946:10;1553:51096;27040:61;;1553:51096;26966:4;1553:51096;;;;;;;;;;;;;;;;;;;;;;27040:61;1553:51096;26926:78;;;;;:::i;:::-;1553:51096;;26926:78;;;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;25154:19;;;1553:51096;;;;;25261:26;;1553:51096;;;25251:37;;25307:25;;1553:51096;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;13631:35;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17958:25;-1:-1:-1;;;;;;;;;;;1553:51096:164;17958:25;1553:51096;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;2435:3;1553:51096;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5294:13:61;;1553:51096:164;;;;5329:4:61;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;2324:62:52;;:::i;:::-;1965:72:60;;:::i;:::-;3321:4;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;3340:20:60;1553:51096:164;;;987:10:57;1553:51096:164;;3340:20:60;1553:51096:164;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:51096:164;;;;18658:19;18593:13;18658:19;;18588:120;18608:20;;;;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;18630:3;18684:12;;1553:51096;18684:12;;;;:::i;:::-;1553:51096;;;;;;;;;;;;18649:48;;;;:::i;:::-;1553:51096;;;:::i;:::-;;;18593:13;;1553:51096;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;:::i;:::-;;;;993:64:59;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;12785:30;-1:-1:-1;;;;;;;;;;;1553:51096:164;12785:30;1553:51096;;;;;;;;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;1553:51096:164;;;;;;;-1:-1:-1;;;;;1553:51096:164;3996:40:52;1553:51096:164;;3996:40:52;1553:51096:164;;;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;6429:44:18;;;;;1553:51096:164;6425:105:18;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;6959:1:18;;-1:-1:-1;;;;;1553:51096:164;6891:76:18;;:::i;:::-;;;:::i;6959:1::-;1553:51096:164;;:::i;:::-;2213:17;;;:::i;:::-;6891:76:18;;;:::i;:::-;;;:::i;:::-;1553:51096:164;;-1:-1:-1;;;;;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;-1:-1:-1;;;;;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;3593:10:61;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;9981:17;;:::i;:::-;2277:3;;6591:4:18;9959:19:164;;1553:51096;3569:7:61;2277:3:164;;;1553:51096;;2277:3;;;1553:51096;2277:3;1553:51096;2277:3;;;;;1553:51096;2277:3;;;;;;;;;;1553:51096;;;;;;;:::i;:::-;;;;10038:57;1553:51096;10008:27;3593:10:61;10008:27:164;;1553:51096;;;;2277:3;1553:51096;;;;;;;;29503:37:168;29524:15;29503:37;;:::i;:::-;10148:38:164;1553:51096;;;10105:33;;;1553:51096;;2243:1:168;;;;;;;;1553:51096:164;;;;;;;10248:32;;;1553:51096;;;;;;;;;;;10235:57;;;;;;;;10229:63;10235:57;;;;;1553:51096;10229:63;;:::i;:::-;2355:5;;;;;;;;;;10302:48;;;1553:51096;2355:5;2435:3;2355:5;;2435:3;2355:5;;;;;1553:51096;10420:49;;1553:51096;;2955:2;10540:35;;1553:51096;-1:-1:-1;;;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;6654:20:18;1553:51096:164;;;7568:1;1553:51096;;6654:20:18;1553:51096:164;;2355:5;-1:-1:-1;;;2277:3:164;;;1553:51096;2277:3;;1553:51096;2277:3;2355:5;-1:-1:-1;;;2277:3:164;;;1553:51096;2277:3;;1553:51096;2277:3;10235:57;;;;1553:51096;10235:57;1553:51096;10235:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:51096;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;3593:10:61;1553:51096:164;;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;7568:1;1553:51096;;;;;;;;;;;;7568:1;1553:51096;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:51096:164;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;7568:1;1553:51096;;;;;;;;;;;7568:1;1553:51096;;;;;:::i;:::-;;;;6425:105:18;-1:-1:-1;;;6496:23:18;;1553:51096:164;;6496:23:18;6429:44;7568:1:164;1553:51096;;-1:-1:-1;;;;;1553:51096:164;6448:25:18;;6429:44;;;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;2324:62:52;;:::i;:::-;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;23644:38;1553:51096;;;;2955:2;1553:51096;;;;3020:1;1553:51096;23815:91;23939:56;1553:51096;23939:56;;24006:26;1553:51096;;;:::i;:::-;24046:38;;;3087:24;;;;1553:51096;3087:24;;;;;;;24669:42;2955:2;1553:51096;2955:2;;;24042:542;;;1553:51096;;;;;;24669:42;1553:51096;;24042:542;1553:51096;;;;;;;;;:::i;:::-;24193:38;1553:51096;;3087:24;1553:51096;3087:24;;;;;;;2955:2;1553:51096;2955:2;24669:42;2955:2;3020:1;2955:2;2243:1:168;;;2955:2:164;24284:103;24189:395;;24042:542;;24189:395;3087:24;;;1553:51096;3087:24;;;;;;;2955:2;1553:51096;2955:2;;;24669:42;2955:2;;2243:1:168;;;2955:2:164;24439:113;:134;24189:395;;24042:542;;1553:51096;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;1553:51096:164;;;;;4301:16:18;1553:51096:164;;4724:16:18;;:34;;;;1553:51096:164;;4788:16:18;:50;;;;1553:51096:164;4853:13:18;:30;;;;1553:51096:164;4849:91:18;;;6959:1;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;4977:67:18;;1553:51096:164;6891:76:18;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:51096:164;;:::i;:::-;2213:17;;:::i;:::-;6891:76:18;;;:::i;:::-;;;:::i;:::-;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3593:10:61;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;6891:76:18;;:::i;:::-;5381:15:164;:19;2277:3;;5439:21;;2277:3;;5506:32;;;2277:3;;;5787:2;5751:32;;;;:::i;:::-;2277:3;5731:58;;2277:3;;;1553:51096;;;;;;;;;:::i;:::-;2277:3;1553:51096;;;2277:3;;;;;2324:62:52;;:::i;:::-;1553:51096:164;;1794:178:36;;;;;;;1553:51096:164;;;1794:178:36;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;52072:24;;;5945:17;;:::i;:::-;2277:3;;1553:51096;5923:19;;1553:51096;3569:7:61;2277:3:164;;;1553:51096;2277:3;;;1553:51096;;2277:3;;;;;;1553:51096;2277:3;;;;;;;;;;;1553:51096;;;;;;:::i;:::-;2277:3;;;-1:-1:-1;;;;;1553:51096:164;;;;5995:52;;2277:3;;;1553:51096;;;5995:52;;;;2277:3;;;5972:20;;;;;1553:51096;;;;;;-1:-1:-1;;;;;;1553:51096:164;;;;;;;2277:3;;;1553:51096;;;;;;;;2277:3;;;1553:51096;;;;;;;;;;2243:1:168;6057:25:164;;;2243:1:168;1553:51096:164;;:::i;:::-;;;;;;;:::i;:::-;1895:13:168;1553:51096:164;;2423:18:168;1553:51096:164;24507:89:168;;;1553:51096:164;6245:22;;;1553:51096;;-1:-1:-1;;;;;;2243:1:168;;;;;1553:51096:164;;;;;;;;;:::i;:::-;;;;;6332:65;;1553:51096;;;6332:65;1553:51096;6313:16;;;1553:51096;2277:3;2243:1:168;;1553:51096:164;2243:1:168;;;1553:51096:164;6407:33;;;2243:1:168;;-1:-1:-1;;2243:1:168;1553:51096:164;;;2243:1:168;;;1553:51096:164;;-1:-1:-1;;;6511:37:164;;1553:51096;;;;;6511:37;;1553:51096;6511:37;1553:51096;6511:37;;;;;;;;6505:43;6511:37;;;;;6505:43;;:::i;:::-;2355:5;;;;;;;;;;6558:48;;;1553:51096;2355:5;2435:3;2355:5;;2435:3;2355:5;;;;;6676:49;2435:3;6676:49;1553:51096;6676:49;;1553:51096;2435:3;1553:51096;;;;;;:::i;:::-;;;2435:3;;1553:51096;2435:3;;1553:51096;2435:3;1553:51096;2435:3;;1553:51096;;;;2435:3;:::i;:::-;1553:51096;;2435:3;;:::i;:::-;2243:1:168;;;;;1145:66:90;;1837:24:89;;:71;;;;1553:51096:164;;;;;;2243:1:168;6868:37:164;;;1553:51096;2243:1:168;5787:2:164;1553:51096;;;1745:1673:170;;;;;;;;;;;;;;;;6245:22:164;1745:1673:170;;;;;;;;;;;50954:52:164;;1553:51096;;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;1745:1673:170;;51200:15:164;;;;51083:13;51102:16;;;;51083:13;51127:3;1553:51096;;51098:27;;;;;1553:51096;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;-1:-1:-1;1553:51096:164;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;51083:13;;51098:27;;;;;;;51260:13;51302:3;1553:51096;;51275:25;;;;;1553:51096;;-1:-1:-1;;;;;51342:17:164;1553:51096;51342:17;;:::i;:::-;2277:3;1553:51096;;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;51260:13;;51275:25;;;;;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;51255:163;1553:51096;;;;;;;;;;;;;;;5381:15;;;;;51470:28;;;1553:51096;;2955:2;7132:35;;1553:51096;5064:101:18;;1553:51096:164;;;5064:101:18;1553:51096:164;5140:14:18;1553:51096:164;-1:-1:-1;;;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;5140:14:18;1553:51096:164;;;2277:3;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;1745:1673:170;;;;1553:51096:164;1745:1673:170;;1553:51096:164;-1:-1:-1;;;1553:51096:164;;;;;1837:71:89;1865:43;;;;:::i;:::-;1837:71;;;;2355:5:164;-1:-1:-1;;;2277:3:164;;;1553:51096;2277:3;1553:51096;;2277:3;6511:37;1553:51096;;;;;;;;;2277:3;-1:-1:-1;;;2277:3:164;;1553:51096;2277:3;;;-1:-1:-1;;;2277:3:164;;1553:51096;2277:3;;;-1:-1:-1;;;2277:3:164;;1553:51096;2277:3;;;-1:-1:-1;;;2277:3:164;;1553:51096;2277:3;;1553:51096;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;3593:10:61;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;1553:51096:164;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:51096:164;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;4977:67:18;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;4977:67:18;;4849:91;-1:-1:-1;;;4906:23:18;;1553:51096:164;4906:23:18;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;1553:51096:164;;;;;;;;;;;;;4840:6:19;-1:-1:-1;;;;;1553:51096:164;4831:4:19;4823:23;4819:145;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;4819:145:19;-1:-1:-1;;;4924:29:19;;1553:51096:164;;4924:29:19;1553:51096:164;-1:-1:-1;1553:51096:164;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;4417:6:19;1553:51096:164;4408:4:19;4400:23;;;:120;;;;1553:51096:164;4383:251:19;;;2324:62:52;;:::i;:::-;1553:51096:164;;-1:-1:-1;;;5881:52:19;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;5881:52:19;;;;;;;;1553:51096:164;-1:-1:-1;5877:437:19;;-1:-1:-1;;;6243:60:19;;1553:51096:164;;;;;1805:47:11;6243:60:19;5877:437;5975:40;;;-1:-1:-1;;;;;;;;;;;5975:40:19;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;1553:51096:164;;;;;2407:36:11;;;;1553:51096:164;;2458:15:11;:11;;2489:53;;;:::i;:::-;;1553:51096:164;;2454:148:11;6185:9;;;6181:70;;1553:51096:164;;6181:70:11;-1:-1:-1;;;6221:19:11;;1553:51096:164;;6221:19:11;1744:119;-1:-1:-1;;;1805:47:11;;1553:51096:164;;;1805:47:11;;5971:120:19;-1:-1:-1;;;6042:34:19;;1553:51096:164;;;6042:34:19;;5881:52;;;;1553:51096:164;5881:52:19;;1553:51096:164;5881:52:19;;;;;;1553:51096:164;5881:52:19;;;:::i;:::-;;;1553:51096:164;;;;;5881:52:19;;;;1553:51096:164;-1:-1:-1;1553:51096:164;;5881:52:19;;;-1:-1:-1;5881:52:19;;4383:251;-1:-1:-1;;;4594:29:19;;1553:51096:164;4594:29:19;;4400:120;-1:-1:-1;;;;;;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;4478:42:19;;;-1:-1:-1;4400:120:19;;;1553:51096:164;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;2992:9:60;2988:62;;1553:51096:164;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;3648:22:60;1553:51096:164;;;987:10:57;1553:51096:164;;3648:22:60;1553:51096:164;;2988:62:60;-1:-1:-1;;;3024:15:60;;1553:51096:164;3024:15:60;;1553:51096:164;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:51096:164;22525:23;;1553:51096;;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29503:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29524:15:168;29503:37;;:::i;:::-;1553:51096:164;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;1965:72:60;;:::i;:::-;32475:36:164;1553:51096;;;;32475:36;:::i;:::-;-1:-1:-1;;;;;;1553:51096:164;;;;32562:70;1553:51096;;;;32599:10;;32562:70;-1:-1:-1;;;;;;;;;;;1553:51096:164;13359:23;;1553:51096;-1:-1:-1;;;;;1553:51096:164;32522:134;;;;;1553:51096;;-1:-1:-1;;;32522:134:164;;-1:-1:-1;;;;;1553:51096:164;;;;32522:134;;1553:51096;;;;;;;;;;;;;;;;;;32522:134;1553:51096;;32522:134;;;;;;;;;1553:51096;;;;;;;;32562:70;;;1553:51096;;;;;;;;;;;;;;3785:23:61;;:::i;1553:51096:164:-;;;;;;;;;;;;;20959:38;1553:51096;-1:-1:-1;;;;;;;;;;;1553:51096:164;20959:38;1553:51096;;;;;;;;;;;;;;;;;;;;;12247:22;-1:-1:-1;;;;;;;;;;;1553:51096:164;12247:22;1553:51096;;;;;;;;;;;;;;;;;;;;;20291:51;-1:-1:-1;;;;;;;;;;;1553:51096:164;20291:51;1553:51096;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;2324:62:52;;:::i;:::-;1553:51096:164;;22843:51;-1:-1:-1;;;;;;;;;;;1553:51096:164;22843:51;1553:51096;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;34518:36:164;1553:51096;;;;34518:36;:::i;:::-;34606:32;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;34654:96;;;;;;1553:51096;;;;;;;;;;;;34654:96;;1553:51096;;;;;;;;34694:4;;34674:10;1553:51096;34654:96;;;:::i;:::-;;;;;;;;;1553:51096;-1:-1:-1;;1553:51096:164;;-1:-1:-1;;;34786:79:164;;34674:10;1553:51096;34786:79;;1553:51096;34694:4;1553:51096;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;34786:79;;;;;;;;;;;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;34981:70;1553:51096;;;;34674:10;;34981:70;;-1:-1:-1;;;;;;;;;;;1553:51096:164;34606:20;13359:23;1553:51096;-1:-1:-1;;;;;1553:51096:164;34924:236;;;;;1553:51096;;-1:-1:-1;;;34924:236:164;;-1:-1:-1;;;;;1553:51096:164;;;;34924:236;;1553:51096;;;;;;;;;;;;;;34924:236;1553:51096;;;34924:236;;;;;;;;;;1553:51096;;;;;;;;34981:70;;;;1553:51096;-1:-1:-1;;;1553:51096:164;;;;;34786:79;;;;1553:51096;34786:79;1553:51096;34786:79;;;;;;;:::i;:::-;;;;;1553:51096;;;;;;;;;34654:96;;;;;:::i;:::-;1553:51096;;34654:96;;;;1553:51096;;;;;;-1:-1:-1;;1553:51096:164;;;;;;:::i;:::-;;;:::i;:::-;1965:72:60;;;:::i;:::-;36586:37:164;1553:51096;;;;36586:37;:::i;:::-;-1:-1:-1;;;;;;1553:51096:164;;;;36674:70;1553:51096;;;;36711:10;;36674:70;;36634:136;;;;;1553:51096;;-1:-1:-1;;;36634:136:164;;-1:-1:-1;;;;;1553:51096:164;;;;36634:136;;1553:51096;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;36634:136;1553:51096;-1:-1:-1;36634:136:164;;;;;;;;1553:51096;36634:136;;;36674:70;1553:51096;;;;;;;36634:136;1553:51096;36634:136;;;:::i;:::-;1553:51096;36634:136;;;1553:51096;;;;;;;;;36674:70;;;;1553:51096;;;;;;-1:-1:-1;;1553:51096:164;;;;2324:62:52;;:::i;:::-;1553:51096:164;;23240:52;-1:-1:-1;;;;;;;;;;;1553:51096:164;23240:52;1553:51096;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;19956:42;-1:-1:-1;;;;;;;;;;;1553:51096:164;19956:42;1553:51096;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1553:51096:164;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;-1:-1:-1;;1553:51096:164;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:51096:164;;;;:::o;2213:17::-;1553:51096;;;;;;;:::i;:::-;2213:17;1553:51096;;-1:-1:-1;;;1553:51096:164;2213:17;;;:::o;2277:3::-;;;;;;;;;;:::o;:::-;1553:51096;;;2277:3;;;;;;;;;;;;;;;:::o;:::-;1553:51096;;;2277:3;;;;;;;;2243:1:168;;;;;;;;;;1553:51096:164;;;;;;;2243:1:168;:::o;:::-;1553:51096:164;;2243:1:168;;;;;;;;:::o;2355:5:164:-;;;;;;;;;;;;;;;;:::o;2435:3::-;;;;;;;;;;;1553:51096;;;;:::i;:::-;2435:3;;;1553:51096;;;2435:3;;;1553:51096;2435:3;;;:::o;:::-;-1:-1:-1;;;;;2435:3:164;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:51096;;;;;;;:::i;:::-;2435:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:51096;;;;;:::i;:::-;2435:3;;;;;;;;3087:24;;;;;;;;;;:::o;1553:51096::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;15156:375::-;29503:37:168;-1:-1:-1;;;;;;;;;;;1553:51096:164;29524:15:168;29503:37;;:::i;:::-;15408:22:164;;;1553:51096;15360:22;;;;;;15513:11;;;;1553:51096;15156:375;:::o;15384:3::-;15431:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:51096:164;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;15407:39;15403:90;;1553:51096;;15345:13;;15403:90;15466:12;;;;1553:51096;15466:12;:::o;1553:51096::-;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:51096:164;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;21228:583::-;21361:38;-1:-1:-1;;;;;;;;;;;1553:51096:164;21361:38;1553:51096;;;;;:::i;:::-;21413:37;;;1553:51096;2955:2;1553:51096;21466:62;:::o;21409:396::-;1553:51096;;;;;;;:::i;:::-;21549:37;1553:51096;;3020:1;1553:51096;21609:91;21602:98;:::o;21545:260::-;21738:56;21731:63;:::o;1553:51096::-;-1:-1:-1;;1553:51096:164;;;;;;;:::o;3426:215:52:-;-1:-1:-1;;;;;1553:51096:164;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;1553:51096:164;;-1:-1:-1;;;;;;1553:51096:164;;;;;;;-1:-1:-1;;;;;1553:51096:164;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;1553:51096:164;;3530:1:52;3555:31;2679:162;-1:-1:-1;;;;;;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;1553:51096:164;;-1:-1:-1;2784:40:52;2730:128:60;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;2791:61:60;;2730:128::o;2791:61::-;2826:15;;;-1:-1:-1;2826:15:60;;-1:-1:-1;2826:15:60;42093:934:164;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;42269:19;;;;1553:51096;42269:38;1553:51096;;;;;42362:19;;;1553:51096;;42400:24;1553:51096;;;;;;;;;:::i;:::-;42362:62;1553:51096;;3543:209:88;1553:51096:164;3543:209:88;1553:51096:164;3543:209:88;1553:51096:164;;3543:209:88;1553:51096:164;1052:614:85;;;;;;;;-1:-1:-1;;;;;1052:614:85;;;;;1691:6:166;1052:614:85;1553:51096:164;1052:614:85;1928:66:166;4093:83:85;;2038:66:166;1553:51096:164;4093:83:85;;;2148:66:166;1553:51096:164;4093:83:85;;;2258:66:166;2250:6;4093:83:85;;;2368:66:166;2360:6;4093:83:85;;;2478:66:166;2470:6;4093:83:85;;;2588:66:166;2580:6;4093:83:85;;;2698:66:166;2690:6;4093:83:85;;;2808:66:166;2800:6;4093:83:85;;;2918:66:166;2910:6;4093:83:85;;;3028:66:166;3020:6;4093:83:85;;;3138:66:166;3130:6;4093:83:85;;;3248:66:166;3240:6;4093:83:85;;;3358:66:166;3350:6;4093:83:85;;;3468:66:166;3460:6;4093:83:85;;;3578:66:166;3570:6;4093:83:85;;;3688:66:166;3680:6;4093:83:85;;;3798:66:166;3790:6;4093:83:85;;;3908:66:166;3900:6;4093:83:85;;;4018:66:166;4010:6;4093:83:85;;;4128:66:166;4120:6;4093:83:85;;;4238:66:166;4230:6;4093:83:85;;;42822:4:164;4576:2:166;2955::164;4477:66:166;;;;;4476:103;4456:6;4093:83:85;;;4632:66:166;4624:6;4093:83:85;;;42699:135:164;4710:150:166;;;;;;1553:51096:164;;;;;;;-1:-1:-1;1553:51096:164;42845:28;;;1553:51096;;;;-1:-1:-1;1553:51096:164;;42902:33;;;:35;1553:51096;;42902:35;:::i;:::-;1553:51096;;;;-1:-1:-1;;;;;1553:51096:164;;;;42953:32;;1553:51096;;42953:32;42996:24;42093:934;:::o;1553:51096::-;;;;;;;;;42093:934;;;;-1:-1:-1;;;;;;;;;;;1553:51096:164;42269:19;34549:4;42269:19;;1553:51096;42269:38;1553:51096;;;-1:-1:-1;1553:51096:164;42362:19;;;1553:51096;;42400:24;1553:51096;;-1:-1:-1;1553:51096:164;;;;;;:::i;:::-;42362:62;1553:51096;;3543:209:88;-1:-1:-1;3543:209:88;1553:51096:164;3543:209:88;1553:51096:164;-1:-1:-1;3543:209:88;1553:51096:164;1052:614:85;;;;;;;;-1:-1:-1;;;;;1052:614:85;;;;;1585:4:167;1052:614:85;1553:51096:164;1052:614:85;2081:66:167;4093:83:85;;42761:4:164;1052:614:85;2955:2:164;2227:66:167;2226:105;1553:51096:164;4093:83:85;;;2382:66:167;1553:51096:164;4093:83:85;;;-1:-1:-1;2460:150:167;;;;;;1553:51096:164;;;;;;;-1:-1:-1;1553:51096:164;42845:28;;;1553:51096;;;;-1:-1:-1;1553:51096:164;;42902:33;;;:35;1553:51096;;42902:35;:::i;24729:229:168:-;1553:51096:164;;:::i;:::-;;;24907:12:168;15371:24:46;15367:103;;1553:51096:164;837:15:50;14371:24:46;14367:103;;1553:51096:164;;;;;:::i;:::-;24877:1:168;1553:51096:164;;;24907:12:168;1553:51096:164;24845:106:168;;;1553:51096:164;;837:15:50;1553:51096:164;;24845:106:168;;1553:51096:164;24729:229:168;:::o;14367:103:46:-;15418:41;;;24877:1:168;14418:41:46;14449:2;14418:41;1553:51096:164;837:15:50;1553:51096:164;;;24877:1:168;14418:41:46;15367:103;15418:41;;;24877:1:168;15418:41:46;15449:2;15418:41;1553:51096:164;24907:12:168;1553:51096:164;;;24877:1:168;15418:41:46;1553:51096:164;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23704:532:168;23829:12;-1:-1:-1;;2277:3:164;;;23704:532:168;;2277:3:164;;;;1553:51096;;23829:12:168;23869:22;;23829:12;;23869:50;1553:51096:164;23869:50:168;;23953:8;;;;;;23929:278;-1:-1:-1;1553:51096:164;;-1:-1:-1;;23704:532:168:o;23934:17::-;23992:12;;24022:11;;;;;-1:-1:-1;23844:1:168;;-1:-1:-1;;;24053:11:168:o;24018:119::-;24089:8;24085:52;;-1:-1:-1;;1553:51096:164;23934:17:168;;24085:52;24117:5;;23869:50;23898:21;23829:12;;23898:21;:::i;:::-;23869:50;;;1553:51096:164;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;43033:846::-;;43161:22;;;43194:1;43161:22;;;;:::i;:::-;:34;;;1553:51096;;43238:22;;;;:::i;:::-;:34;;;43234:177;;43465:22;;;:::i;:::-;1553:51096;;;;;;;:::i;:::-;43555:23;;;;;:::i;:::-;2355:5;;;;1553:51096;2355:5;;;;;49067:2;2355:5;;;;;;;49113:36;;;;;;:::i;:::-;49159:18;1553:51096;49193:13;1553:51096;;49328:28;1553:51096;;;;;;49328:28;;49188:685;49228:3;49208:18;;;;;;1553:51096;;;;;;;;;;;;;;49357:18;;;:::i;:::-;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;49328:53;1553:51096;;;43161:22;49451:25;;;-1:-1:-1;;;;;49451:25:164;;;:::i;:::-;1553:51096;49451:30;;:72;;;49228:3;49447:144;;49228:3;-1:-1:-1;;;;;49638:18:164;;;:::i;:::-;1553:51096;;-1:-1:-1;;;49630:76:164;;49067:2;49630:76;;;1553:51096;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;-1:-1:-1;;;;;1553:51096:164;;;:::i;:::-;;;;;;49067:2;1553:51096;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;49067:2;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;1553:51096:164;;;;;;;;;;;49067:2;1553:51096;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;49067:2;1553:51096;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1553:51096:164;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;1553:51096:164;;;;;;;:::i;:::-;49630:76;1553:51096;;49630:76;;;;;;;;1553:51096;49630:76;;;1553:51096;4093:83:85;;49067:2:164;4093:83:85;43194:1:164;4093:83:85;;;;1553:51096:164;49228:3;1553:51096;49193:13;;;49630:76;;;49067:2;49630:76;;;;;;;;;1553:51096;49630:76;;;:::i;:::-;;;1553:51096;;;;;43194:1;49630:76;;;;;-1:-1:-1;49630:76:164;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;49067:2;1553:51096;;;:::i;:::-;;49067:2;1553:51096;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;43161:22;1553:51096;;;43161:22;1553:51096;;;;;;;;;;;;;;;;;;;;;;49067:2;1553:51096;;;;;43194:1;1553:51096;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43194:1;1553:51096;;;;;;;;;;;49067:2;1553:51096;;;:::i;:::-;;49067:2;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;49447:144;49551:25;;;;;:::i;:::-;49447:144;;;49451:72;49486:37;;1553:51096;49486:37;;;:::i;:::-;49485:38;49451:72;;49208:18;;;;;;;;;;1083:131:88;43607:16:164;1553:51096;49067:2;43607:16;;1553:51096;;43595:29;49067:2;1553:51096;;;;;43595:29;43638:32;1553:51096;43638:46;43634:127;;49188:685;1553:51096;;18065:64:168;49067:2:164;18065:64:168;;1553:51096:164;;;;;;;;;;;;18065:64:168;;;43161:22:164;18065:64:168;;:::i;:::-;1553:51096:164;18055:75:168;;43033:846:164;:::o;43634:127::-;43705:45;49067:2;1553:51096;;;;;43705:45;43634:127;;43234:177;43380:20;;;43387:13;43380:20;:::o;1553:51096::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;45329:1705::-;45459:24;;;45494:1;45459:24;;;;:::i;:::-;:36;;;1553:51096;;45540:24;;;;:::i;:::-;:36;;;45536:179;;45771:24;;;;:::i;:::-;1553:51096;;;;;;;;;;;;;;;;;;45817:21;;;;;45841;45817;;;:::i;:::-;45841;;;1553:51096;45841:21;;;;:::i;:::-;1553:51096;;;45817:45;1553:51096;;;45920:21;;;:::i;:::-;1553:51096;45945:29;;;;1553:51096;45841:21;1553:51096;;;;45920:54;1553:51096;;46131:46;1553:51096;46155:21;46051:46;46075:21;;;;:::i;:::-;1553:51096;46051:46;;:::i;:::-;46155:21;;:::i;:::-;1553:51096;46131:46;;:::i;:::-;-1:-1:-1;1553:51096:164;;;46299:31;;;1553:51096;46368:32;;;;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;46467:19;;;;1553:51096;;;;45841:21;;1553:51096;46355:144;46436:62;45841:21;46467:19;;1553:51096;46467:19;:::i;:::-;:31;1553:51096;46436:62;;:::i;:::-;46467:19;1553:51096;;;;;;;;;46355:144;;;;;;1553:51096;;;;;46355:144;;;;;;;1553:51096;46355:144;;;45329:1705;1553:51096;;;;;46467:19;1553:51096;-1:-1:-1;;;46589:185:164;;-1:-1:-1;;;;;1553:51096:164;;;46355:144;46589:185;;1553:51096;;;;;;;;45841:21;46734:26;;;1553:51096;46355:144;1553:51096;;;;46589:185;1553:51096;-1:-1:-1;46589:185:164;;;;;;;;1553:51096;46589:185;;;45329:1705;46875:19;;;;;:::i;:::-;46896:21;;;;:::i;:::-;1553:51096;46467:19;1553:51096;;;;;46826:92;;46467:19;46355:144;46826:92;;1553:51096;;;;;;;;;;;;;;;;;;;;45841:21;1553:51096;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;46368:32;1553:51096;;;;;;;45817:21;46355:144;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;45841:21;1553:51096;;;;;;;;;;;46589:185;1553:51096;;;;46467:19;1553:51096;;;;;;;;:::i;:::-;;;;;;;;;;;46826:92;;;;;;;;;1553:51096;46826:92;;;1553:51096;47005:21;;;;:::i;:::-;46467:19;1553:51096;19114:70:168;45841:21:164;19114:70:168;;1553:51096:164;;;46467:19;1553:51096;;;2277:3;1553:51096;;;;;;45817:21;1553:51096;;;19114:70:168;;;;;;;:::i;46826:92:164:-;;;;45841:21;46826:92;;45841:21;46826:92;;;;;;1553:51096;46826:92;;;:::i;:::-;;;1553:51096;;;;;;47005:21;46826:92;;;;;-1:-1:-1;46826:92:164;;1553:51096;;;;;;;46467:19;1553:51096;45494:1;1553:51096;;;;;;;;;:::i;:::-;;;;45841:21;1553:51096;;;45841:21;1553:51096;;;;;;;;;;;;;;;;46589:185;;;;;45841:21;46589:185;;45841:21;46589:185;;;;;;1553:51096;46589:185;;;:::i;:::-;;;1553:51096;;;;;;;46875:19;46589:185;;;;;-1:-1:-1;46589:185:164;;1553:51096;;;;;;46355:144;1553:51096;;46355:144;;;;45841:21;46355:144;45841:21;46355:144;;;;;;;:::i;:::-;;;;1553:51096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;47101:1705::-;;47234:27;;;47272:1;47234:27;;;;:::i;:::-;:39;;;1553:51096;;47321:27;;;;:::i;:::-;:39;;;47317:182;;47558:27;;;:::i;:::-;1553:51096;;;;;;;;;;;;;;;;;;47607:22;;;;;;;:::i;:::-;:33;;;1553:51096;;;47774:29;;;1553:51096;;;;47756:15;:47;:15;;:47;:::i;:::-;47755:72;47807:16;;;1553:51096;47755:72;;;:::i;:::-;47846:20;;;;1553:51096;3087:24;47272:1;3087:24;;;;;;;47846:43;;1553:51096;;47980:43;;47948:75;47980:43;;:::i;:::-;47948:75;;:::i;:::-;48075:25;48060:40;48075:25;;;1553:51096;48060:40;;:::i;:::-;47756:15;48041:59;1553:51096;;48219:34;;;:::i;:::-;48271:28;1553:51096;48271:28;;47756:15;;1553:51096;;48271:46;1553:51096;;;48466:34;;;:::i;:::-;48514:31;1553:51096;48514:31;;48559:45;;;;;2435:3;;48559:45;;;;:::i;:::-;48618:22;;;;;;:::i;:::-;1553:51096;;;2435:3;1553:51096;2435:3;;:::i;:::-;1553:51096;;2435:3;;:::i;:::-;50317:752;;;47101:1705;51083:13;;1553:51096;51083:13;;;51102:16;1553:51096;51102:16;;;51200:15;;51078:168;51127:3;1553:51096;;51098:27;;;;;1553:51096;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;-1:-1:-1;;1553:51096:164;;;47272:1;1553:51096;51083:13;;51098:27;;;;;;;;;;1553:51096;51302:3;1553:51096;;51275:25;;;;;47272:1;;-1:-1:-1;;;;;51342:17:164;1553:51096;51342:17;;:::i;:::-;2277:3;1553:51096;;;;;;;-1:-1:-1;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;51260:13;;51275:25;;;;;;;;;;;;1553:51096;;;-1:-1:-1;;;;;1553:51096:164;;;;-1:-1:-1;;;1553:51096:164;;;;;;;;;;;;;;;;51255:163;1553:51096;;;;;;;;;;;;;;;;;;;;48692:47;1553:51096;;;;;;48692:47;1553:51096;;;;;;;;;;47846:20;1553:51096;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;48559:45;1553:51096;;;;47607:22;1553:51096;;;;;;19559:30:168;;2243:1;1553:51096:164;2243:1:168;;19609:32;;2243:1;1553:51096:164;;;19474:257:168;;;1553:51096:164;19474:257:168;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:51096:164;;19474:257:168;;;;;;1553:51096:164;19474:257:168;;;:::i;1553:51096:164:-;;;-1:-1:-1;;;;;1553:51096:164;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;47272:1;1553:51096;;;;2277:3;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;47272:1;1553:51096;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;50317:752;2243:1:168;;50778:25:164;1553:51096;50778:25;;2243:1:168;;;1145:66:90;;1837:24:89;;:71;;;;50317:752:164;1553:51096;;;;;2243:1:168;1553:51096:164;;2243:1:168;47272::164;1553:51096;;;1745:1673:170;;;;;;;;;;;;;;;;;;;1553:51096:164;1745:1673:170;;;;;;;47774:29:164;50954:52;;1553:51096;;-1:-1:-1;;;;;;1553:51096:164;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;-1:-1:-1;;50317:752:164;;1745:1673:170;;1553:51096:164;1745:1673:170;;;;1553:51096:164;;;;;;;;;1837:71:89;1865:43;;;;:::i;:::-;1837:71;;;;1553:51096:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25449:3813:168;;;;;;1553:51096:164;33447:29:168;;;1553:51096:164;;;;33479:22:168;25818:15;33479:22;;:::i;:::-;33447:77;33479:45;33504:16;;;1553:51096:164;33479:45:168;;;:::i;:::-;33447:77;;:::i;:::-;25848:15;;;;;;:82;;25449:3813;25844:676;;;25954:35;;;1553:51096:164;;26039:25:168;;;;:::i;:::-;:39;1553:51096:164;;26614:24:168;25844:676;;26614:24;;:::i;:::-;3270:200:43;-1:-1:-1;;;1553:51096:164;3270:200:43;26679:4:168;3270:200:43;;33447:29:168;3270:200:43;33504:16:168;3270:200:43;;1553:51096:164;3270:200:43;1553:51096:164;33447:29:168;1553:51096:164;;;;;26742:37:168;;;26803:23;;33447:19;26803:23;;1553:51096:164;;;;;;;2435:3;1553:51096;;:::i;:::-;2435:3;;;:::i;:::-;1553:51096;3270:200:43;1553:51096:164;;26934:23:168;1553:51096:164;;27124:240:168;1553:51096:164;27645:272:168;27124:240;;;3270:200:43;27124:240:168;;;;;;;1553:51096:164;33447:19:168;1553:51096:164;;27734:32:168;;1553:51096:164;27645:272:168;;:::i;1553:51096:164:-;;;;;;;;;;;;;;;;;;26738:2495:168;1553:51096:164;;;33447:19:168;27938:37;27934:1299;;26738:2495;;;;;1553:51096:164;25449:3813:168;:::o;27934:1299::-;28011:199;28048:15;28088:25;28048:15;;;;;1553:51096:164;28088:25:168;;1553:51096:164;;-1:-1:-1;;;;;1553:51096:164;;;;;28011:199:168;;:::i;:::-;28225:27;1553:51096:164;28272:13:168;28468:14;1553:51096:164;28468:14:168;;28267:929;28311:3;28287:22;;;;;;5489:8:40;5433:27;2435:3:164;1553:51096;;;;;;;;:::i;2435:3::-;5433:27:40;;:::i;5489:8::-;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;;;;28464:718:168;;28311:3;;33447:19;28311:3;28272:13;1553:51096:164;28272:13:168;;28464:718;-1:-1:-1;;;;;2774:163:36;1553:51096:164;2774:163:36;;;2102:66:164;1553:51096;2774:163:36;;;;3327:69:39;;28827:50:168;;;28905:8;33447:19;28905:8;;;28823:223;3556:68:39;33447:19:168;29072:17;3556:68:39;;;29072:17:168;:::i;:::-;:30;;;;29068:96;;28464:718;;;29068:96;29130:11;;;;;;;33447:19;29130:11;:::o;28287:22::-;;;;;;;;1553:51096:164;29210:12:168;:::o;1553:51096:164:-;;;;;;;;;;;;;;;;;;25844:676:168;25818:15;;;;;;26313:21;;1553:51096:164;;26614:24:168;26371:69;;;25844:676;;;;26371:69;26410:15;;26371:69;;;1553:51096:164;;;;;;;;;25848:82:168;25898:32;25885:45;25898:32;;;1553:51096:164;25885:45:168;;:::i;:::-;25818:15;25867:63;25848:82;;32296:456;-1:-1:-1;;;;;32296:456:168;;1553:51096:164;;;;32605:24:168;;;;:::i;:::-;1553:51096:164;;;;;;32717:5:168;1553:51096:164;;32730:1:168;1553:51096:164;32296:456:168;:::o;3821:191:61:-;1553:51096:164;;:::i;:::-;;;;;;6463:31:61;1553:51096:164;;:::i;:::-;;;;;;6801:34:61;1553:51096:164;;3912:92:61;1553:51096:164;3912:92:61;;1553:51096:164;1977:95:61;1553:51096:164;;;1977:95:61;;1553:51096:164;1977:95:61;;;1553:51096:164;3975:13:61;1977:95;;;1553:51096:164;3998:4:61;1977:95;;;1553:51096:164;1977:95:61;3912:92;;;;;;:::i;30212:312:168:-;;30335:37;30212:312;30335:37;;:::i;:::-;;;;30395;;30388:44;:::o;30331:187::-;30470:37;;30463:44;:::o;7082:141:18:-;1553:51096:164;-1:-1:-1;;;;;;;;;;;1553:51096:164;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;33871:467:168;1553:51096:164;;:::i;:::-;-1:-1:-1;34175:51:168;;;1553:51096:164;34293:27:168;;;1553:51096:164;;;;;;;;34246:15:168;;-1:-1:-1;;;;;1553:51096:164;;;;:::i;:::-;;;;:::i;:::-;;;34034:297:168;;;2277:3:164;34246:15:168;1553:51096:164;:::i;:::-;;34034:297:168;;1553:51096:164;34034:297:168;;;1553:51096:164;33871:467:168;:::o;1553:51096:164:-;;-1:-1:-1;;;;;1553:51096:164;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:51096:164;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;-1:-1:-1;;1553:51096:164;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;863:809:85;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:85;;;-1:-1:-1;;;;;1052:614:85;;;;;;;;;;863:809::o;32937:179:168:-;33089:16;33051:34;33050:59;32937:179;1553:51096:164;33056:29:168;;;1553:51096:164;;;;33051:34:168;;:::i;:::-;33089:16;;1553:51096:164;33050:59:168;;:::i;29753:322::-;29873:50;29907:15;29873:50;;:::i;:::-;29907:15;;;29946:37;;29939:44;:::o;29869:200::-;30021:37;;30014:44;:::o;7001:1787:83:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:83;;;8025:68;;2933:1:90;2929:5;4026:14:83;3087:24:164;4010:31:83;;;:::i;:::-;1553:51096:164;425:3:83;1553:51096:164;;;4003:1:90;2933;2929:5;;1553:51096:164;425:3:83;4492:84:85;;;4093:83;3087:24:164;4093:83:85;;;4003:1:90;1553:51096:164;;3087:24;4492:84:85;;;3087:24:164;4093:83:85;;;;;3087:24:164;4093:83:85;;;1581:66:83;3087:24:164;4093:83:85;;;-1:-1:-1;;;3087:24:164;4093:83:85;;;531:131:88;;3087:24:164;4093:83:85;;;;;;4003:1:90;3087:24:164;4492:84:85;;2933:1:90;4492:84:85;;3087:24:164;531:131:88;;5696:10:83;;;4093:83:85;;4492:84;3087:24:164;1145:66:90;;531:131:88;;6084:3:83;1553:51096:164;-1:-1:-1;;;;;2955:2:164;;;6084:3:83;2955:2:164;;6062:44:83;1145:66:90;;;1860::83;1553:51096:164;1860:66:83;;1553:51096:164;6037:2:83;1553:51096:164;6140:32:83;6133:57;8567:14;;8563:57;;1145:66:90;3386:2;6084:3:83;1145:66:90;1553:51096:164;1145:66:90;648:2:83;1145:66:90;;;6396:43:89;;1145:66:90;;1553:51096:164;4093:83:85;;1553:51096:164;4093:83:85;;;;;6037:2:83;4093:83:85;;;1145:66:90;;6954:42:89;;-1:-1:-1;;1553:51096:164;1530:4:87;4093:83:85;;;;;;2933:1:90;1640:140:87;;;1553:51096:164;1640:140:87;3543:209:88;1553:51096:164;3543:209:88;648:2:83;3543:209:88;1553:51096:164;;;;;6037:2:83;1553:51096:164;3543:209:88;4476:141:90;9285:100:89;7001:1787:83;:::o;8025:68::-;8070:12;;;;;;1553:51096:164;8070:12:83;:::o;7129:1551:40:-;;;8209:66;8196:79;;8192:164;;1553:51096:164;;;;;;-1:-1:-1;1553:51096:164;;;;;;;;;;;;;;;;;;;8467:24:40;;;;;;;;;-1:-1:-1;8467:24:40;-1:-1:-1;;;;;1553:51096:164;;8505:20:40;8501:113;;8624:49;-1:-1:-1;8624:49:40;-1:-1:-1;7129:1551:40;:::o;8501:113::-;8541:62;-1:-1:-1;8541:62:40;8467:24;8541:62;-1:-1:-1;8541:62:40;:::o;8192:164::-;8291:54;;;8307:1;8291:54;8311:30;8291:54;;:::o;11617:532::-;1553:51096:164;;;;;;11703:29:40;;;11748:7;;:::o;11699:444::-;1553:51096:164;11799:38:40;;1553:51096:164;;11860:23:40;;;11712:20;11860:23;1553:51096:164;11712:20:40;11860:23;11795:348;11913:35;11904:44;;11913:35;;11971:46;;;;11712:20;11971:46;1553:51096:164;;;11712:20:40;11971:46;11900:243;12047:30;12038:39;12034:109;;11900:243;11617:532::o;12034:109::-;12100:32;;;11712:20;12100:32;1553:51096:164;;;11712:20:40;12100:32;30931:863:168;;31177:54;31099;;;1553:51096:164;31177:54:168;;1553:51096:164;31305:10:168;;;1553:51096:164;;31376:9:168;;;;31408;;;;;31440;;;31541:14;;;;;30931:863;1553:51096:164;;;31757:30:168;;;31750:37;;30931:863;:::o;31757:30::-;31772:14;;30931:863;-1:-1:-1;30931:863:168:o;1553:51096:164:-;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;31541:14:168;;;;;1553:51096:164;;;;-1:-1:-1;1553:51096:164;;-1:-1:-1;1553:51096:164;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;1553:51096:164;;;;5045:24:25;1553:51096:164;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;1553:51096:164;;;-1:-1:-1;1553:51096:164;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;;2419:778:40;1553:51096:164;;;2419:778:40;2609:2;2589:22;;2609:2;;3041:25;2825:196;;;;;;;;;;;;;;;-1:-1:-1;2825:196:40;3041:25;;:::i;:::-;3034:32;;;;;:::o;2585:606::-;3097:83;;3113:1;3097:83;3117:35;3097:83;;:::o;1767:250:90:-;-1:-1:-1;;912:66:90;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:90;;1948:15;:62;1767:250;:::o","linkReferences":{},"immutableReferences":{"1929":[{"start":11630,"length":32},{"start":11778,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","bumpProtocolVersion(uint8)":"5734c0e1","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","protocolVersion()":"2ae9c600","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","subProtocolVersion(uint8)":"ed018262","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.35+commit.47b9dedd\"},\"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\":\"uint256\",\"name\":\"newProtocolVersion\",\"type\":\"uint256\"}],\"name\":\"ProtocolVersionChanged\",\"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\":\"enum Gear.VersionType\",\"name\":\"_versionType\",\"type\":\"uint8\"}],\"name\":\"bumpProtocolVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"protocolVersion\",\"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\":\"uint256\",\"name\":\"protocolVersion\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Gear.VersionType\",\"name\":\"versionType\",\"type\":\"uint8\"}],\"name\":\"subProtocolVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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 is invalid.\"}],\"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 a 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).\"}},\"ProtocolVersionChanged(uint256)\":{\"details\":\"This is an *informational* event, signaling that the protocol version has been changed.\",\"params\":{\"newProtocolVersion\":\"The new version of the protocol.\"}},\"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.\"}},\"bumpProtocolVersion(uint8)\":{\"details\":\"Bumps the version of the protocol, used by nodes.\",\"params\":{\"_versionType\":\"The type of version bump (major, minor, patch). Emits `ProtocolVersionChanged` event.\"}},\"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.\"}},\"protocolVersion()\":{\"details\":\"Returns the current protocol version.\",\"returns\":{\"_0\":\"protocolVersion The current protocol version.\"}},\"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.\"}},\"subProtocolVersion(uint8)\":{\"details\":\"Returns the sub-protocol version for the given version type.\",\"params\":{\"versionType\":\"The type of version (major, minor, patch).\"},\"returns\":{\"_0\":\"subProtocolVersion The sub-protocol version.\"}},\"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.\"},\"ProtocolVersionChanged(uint256)\":{\"notice\":\"Emitted when the protocol version is changed.\"},\"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e\",\"dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95\",\"dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0x1149f6c3445a564f5b9cd27c2dc85c6bcaed254c67cb57a416bc7ca1f667ad1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a72ecd1a82f8ece4d83280a4920a6269e83bec971a27d0ce2e3a21d2ae08450\",\"dweb:/ipfs/QmSn68D8stm6b7m4nZndhTqincMQdoTqNrRXmAReV9Xb2r\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd\",\"dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59\",\"dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xfd65a6c942c3533c7253648d9a9b4c0d1f7dbb603d936509dd7f1e9db5fdbd3c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://b727142f3cb78f397c2858cee4045c73d082978fef4e47067b1424e8003689fd\",\"dweb:/ipfs/QmVvSwSKwKeRZuTYUvA4nXhvkCStmsXDU2eTwCoqKQKPRA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824\",\"dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2\",\"dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k\"]},\"src/Router.sol\":{\"keccak256\":\"0xfd04656cef41922fe8291e80928011790b858bb42c60c0442d674f358623cf5e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://228067ed52e0f27d9012e51bb4775bff7c9c2b93987e16bfe685080c32772f35\",\"dweb:/ipfs/QmNe9QaNCnifk25AGgKquUY4N2cs5Cq4Huh81swbZSeqUp\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0xb8ee3c0b9ca571d7a0ab00afd541928a173ceaa1e6c8981bca79b4980ae861cc\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8ff68e6d1d0ac4626bf0e5c4b3e40baa81c7901890a9bf4bb96748a331666f32\",\"dweb:/ipfs/QmQFXai5GRpyPrkQ7cu7zaYuezj8oF7TVD4W66uRxaCex6\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0xadbc9b06486d060323f636b3a72f47495cc992bf7483837bdf6710ca954a7354\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3e34e91e60cf1020fc03b8ab62b6f946b1d958b0308d900c4fe416c447b1260f\",\"dweb:/ipfs/QmbKUa3P3pqnDe7bTikZu1veQFCVXZKkCRA4YZGhXurP8h\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5\",\"dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0x5a9e53b62f5198b3e2c07c523c82de277725b392df34dd0a8ed2ea8f77bd7d5f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://72fb6f6f7141cecefefe6babfb437cfa7b698be6a5df3cba2846d052eb5e94f7\",\"dweb:/ipfs/QmUMXq9okbsTenwnRG2RD4PrqXJWDDV9KvTLpUViqyLS37\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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":"uint256","name":"newProtocolVersion","type":"uint256","indexed":false}],"type":"event","name":"ProtocolVersionChanged","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":"enum Gear.VersionType","name":"_versionType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"bumpProtocolVersion"},{"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":"protocolVersion","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"},{"internalType":"uint256","name":"protocolVersion","type":"uint256"}]}]},{"inputs":[{"internalType":"enum Gear.VersionType","name":"versionType","type":"uint8"}],"stateMutability":"view","type":"function","name":"subProtocolVersion","outputs":[{"internalType":"uint256","name":"","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."}},"bumpProtocolVersion(uint8)":{"details":"Bumps the version of the protocol, used by nodes.","params":{"_versionType":"The type of version bump (major, minor, patch). Emits `ProtocolVersionChanged` event."}},"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."}},"protocolVersion()":{"details":"Returns the current protocol version.","returns":{"_0":"protocolVersion The current protocol version."}},"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."}},"subProtocolVersion(uint8)":{"details":"Returns the sub-protocol version for the given version type.","params":{"versionType":"The type of version (major, minor, patch)."},"returns":{"_0":"subProtocolVersion The sub-protocol version."}},"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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol":{"keccak256":"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402","urls":["bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e","dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol":{"keccak256":"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad","urls":["bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95","dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/PausableUpgradeable.sol":{"keccak256":"0x1149f6c3445a564f5b9cd27c2dc85c6bcaed254c67cb57a416bc7ca1f667ad1f","urls":["bzz-raw://8a72ecd1a82f8ece4d83280a4920a6269e83bec971a27d0ce2e3a21d2ae08450","dweb:/ipfs/QmSn68D8stm6b7m4nZndhTqincMQdoTqNrRXmAReV9Xb2r"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d","urls":["bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd","dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c","urls":["bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59","dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xfd65a6c942c3533c7253648d9a9b4c0d1f7dbb603d936509dd7f1e9db5fdbd3c","urls":["bzz-raw://b727142f3cb78f397c2858cee4045c73d082978fef4e47067b1424e8003689fd","dweb:/ipfs/QmVvSwSKwKeRZuTYUvA4nXhvkCStmsXDU2eTwCoqKQKPRA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x380f3a4fa98511cd1baf5e8ad1a97e709ce451a3828694a9c5ca62bdc5734093","urls":["bzz-raw://1d74c83f9a4f70d9b32a73b46902bfa3e71fa27a22ded1b35ff67232d6870824","dweb:/ipfs/QmQrSQvsB3LPonkk6hEchX6ah4kJj49AyR2tqno6Z68Dht"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb","urls":["bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2","dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Router.sol":{"keccak256":"0xfd04656cef41922fe8291e80928011790b858bb42c60c0442d674f358623cf5e","urls":["bzz-raw://228067ed52e0f27d9012e51bb4775bff7c9c2b93987e16bfe685080c32772f35","dweb:/ipfs/QmNe9QaNCnifk25AGgKquUY4N2cs5Cq4Huh81swbZSeqUp"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Clones.sol":{"keccak256":"0xb8ee3c0b9ca571d7a0ab00afd541928a173ceaa1e6c8981bca79b4980ae861cc","urls":["bzz-raw://8ff68e6d1d0ac4626bf0e5c4b3e40baa81c7901890a9bf4bb96748a331666f32","dweb:/ipfs/QmQFXai5GRpyPrkQ7cu7zaYuezj8oF7TVD4W66uRxaCex6"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/ClonesSmall.sol":{"keccak256":"0xadbc9b06486d060323f636b3a72f47495cc992bf7483837bdf6710ca954a7354","urls":["bzz-raw://3e34e91e60cf1020fc03b8ab62b6f946b1d958b0308d900c4fe416c447b1260f","dweb:/ipfs/QmbKUa3P3pqnDe7bTikZu1veQFCVXZKkCRA4YZGhXurP8h"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xd677bcdfed21c36f5a61683e3743873288952c5db9c4c5fecfd761061abc845a","urls":["bzz-raw://15835cbed478636c3d870dc790c638bbc751fcdf29a84b01be365967786576d5","dweb:/ipfs/QmVgNvLWeTuK5Lcg1H7K2oWCuqekZS7ns2Sv6d9GzU8epY"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/SSTORE2.sol":{"keccak256":"0x5a9e53b62f5198b3e2c07c523c82de277725b392df34dd0a8ed2ea8f77bd7d5f","urls":["bzz-raw://72fb6f6f7141cecefefe6babfb437cfa7b698be6a5df3cba2846d052eb5e94f7","dweb:/ipfs/QmUMXq9okbsTenwnRG2RD4PrqXJWDDV9KvTLpUViqyLS37"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":85533,"exportedSymbols":{"Clones":[85928],"ClonesSmall":[86012],"ECDSA":[9016],"EIP712Upgradeable":[20974],"FROST":[62425],"Gear":[87300],"Hashes":[62943],"IMiddleware":[76902],"IMirror":[77171],"IRouter":[77796],"IWrappedVara":[77812],"Memory":[62717],"NoncesUpgradeable":[20577],"OwnableUpgradeable":[19465],"PausableUpgradeable":[20737],"ReentrancyGuardTransient":[6594],"Router":[85532],"SSTORE2":[87756],"SlotDerivation":[6724],"StorageSlot":[6848],"UUPSUpgradeable":[2079]},"nodeType":"SourceUnit","src":"114:52536:164","nodes":[{"id":82378,"nodeType":"PragmaDirective","src":"114:24:164","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":82380,"nodeType":"ImportDirective","src":"140:101:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":82379,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82382,"nodeType":"ImportDirective","src":"242:98:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":20578,"symbolAliases":[{"foreign":{"id":82381,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20577,"src":"250:17:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82384,"nodeType":"ImportDirective","src":"341:102:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":20738,"symbolAliases":[{"foreign":{"id":82383,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20737,"src":"349:19:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82386,"nodeType":"ImportDirective","src":"444:111:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":20975,"symbolAliases":[{"foreign":{"id":82385,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20974,"src":"452:17:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82388,"nodeType":"ImportDirective","src":"556:88:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":82387,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"564:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82390,"nodeType":"ImportDirective","src":"645:100:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":6595,"symbolAliases":[{"foreign":{"id":82389,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"653:24:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82392,"nodeType":"ImportDirective","src":"746:80:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":82391,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"754:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82394,"nodeType":"ImportDirective","src":"827:74:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":82393,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"835:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82396,"nodeType":"ImportDirective","src":"902:75:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":9017,"symbolAliases":[{"foreign":{"id":82395,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"910:5:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82398,"nodeType":"ImportDirective","src":"978:52:164","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":62426,"symbolAliases":[{"foreign":{"id":82397,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62425,"src":"986:5:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82400,"nodeType":"ImportDirective","src":"1031:60:164","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":62718,"symbolAliases":[{"foreign":{"id":82399,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"1039:6:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82402,"nodeType":"ImportDirective","src":"1092:73:164","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":62944,"symbolAliases":[{"foreign":{"id":82401,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"1100:6:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82404,"nodeType":"ImportDirective","src":"1166:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":76903,"symbolAliases":[{"foreign":{"id":82403,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"1174:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82406,"nodeType":"ImportDirective","src":"1215:40:164","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":77172,"symbolAliases":[{"foreign":{"id":82405,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"1223:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82408,"nodeType":"ImportDirective","src":"1256:40:164","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":77797,"symbolAliases":[{"foreign":{"id":82407,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77796,"src":"1264:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82410,"nodeType":"ImportDirective","src":"1297:50:164","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":77813,"symbolAliases":[{"foreign":{"id":82409,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"1305:12:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82412,"nodeType":"ImportDirective","src":"1348:48:164","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":85929,"symbolAliases":[{"foreign":{"id":82411,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85928,"src":"1356:6:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82414,"nodeType":"ImportDirective","src":"1397:58:164","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":86013,"symbolAliases":[{"foreign":{"id":82413,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86012,"src":"1405:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82416,"nodeType":"ImportDirective","src":"1456:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":87301,"symbolAliases":[{"foreign":{"id":82415,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"1464:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82418,"nodeType":"ImportDirective","src":"1501:50:164","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":85533,"sourceUnit":87757,"symbolAliases":[{"foreign":{"id":82417,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87756,"src":"1509:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85532,"nodeType":"ContractDefinition","src":"1553:51096:164","nodes":[{"id":82435,"nodeType":"VariableDeclaration","src":"1838:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1863:12:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1838:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":82434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:66:164","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":82438,"nodeType":"VariableDeclaration","src":"2057:111:164","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2082:17:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2057:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":82437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2102:66:164","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":82441,"nodeType":"VariableDeclaration","src":"2175:55:164","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2199:11:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82439,"name":"string","nodeType":"ElementaryTypeName","src":"2175:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":82440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2213:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_ded8ea4cbd8dfac3d256d1ee2019397a32c8630b040ad63275830e967889ecd8","typeString":"literal_string \"Vara.ETH Router\""},"value":"Vara.ETH Router"},"visibility":"private"},{"id":82444,"nodeType":"VariableDeclaration","src":"2236:44:164","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2260:14:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82442,"name":"string","nodeType":"ElementaryTypeName","src":"2236:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":82443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2277:3:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"private"},{"id":82447,"nodeType":"VariableDeclaration","src":"2287:73:164","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2312:40:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82445,"name":"uint256","nodeType":"ElementaryTypeName","src":"2287:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":82446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2355:5:164","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"id":82450,"nodeType":"VariableDeclaration","src":"2366:72:164","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2391:41:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82448,"name":"uint256","nodeType":"ElementaryTypeName","src":"2366:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":82449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2435:3:164","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"visibility":"private"},{"id":82453,"nodeType":"VariableDeclaration","src":"2581:144:164","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2606:42:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2581:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":82452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2659:66:164","typeDescriptions":{"typeIdentifier":"t_rational_25041847662038966976180655381136102362768580769727479521951050179079337377943_by_1","typeString":"int_const 2504...(69 digits omitted)...7943"},"value":"0x375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b8097"},"visibility":"private"},{"id":82456,"nodeType":"VariableDeclaration","src":"2732:49:164","nodes":[],"constant":true,"mutability":"constant","name":"MAJOR_PROTOCOL_VERSION","nameLocation":"2755:22:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82454,"name":"uint8","nodeType":"ElementaryTypeName","src":"2732:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":82455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2780:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":82459,"nodeType":"VariableDeclaration","src":"2787:49:164","nodes":[],"constant":true,"mutability":"constant","name":"MINOR_PROTOCOL_VERSION","nameLocation":"2810:22:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82457,"name":"uint8","nodeType":"ElementaryTypeName","src":"2787:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":82458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2835:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":82462,"nodeType":"VariableDeclaration","src":"2842:49:164","nodes":[],"constant":true,"mutability":"constant","name":"PATCH_PROTOCOL_VERSION","nameLocation":"2865:22:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82460,"name":"uint8","nodeType":"ElementaryTypeName","src":"2842:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":82461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2890:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":82465,"nodeType":"VariableDeclaration","src":"2898:59:164","nodes":[],"constant":true,"mutability":"constant","name":"MAJOR_PROTOCOL_VERSION_OFFSET","nameLocation":"2923:29:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82463,"name":"uint256","nodeType":"ElementaryTypeName","src":"2898:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136","id":82464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2955:2:164","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"visibility":"private"},{"id":82468,"nodeType":"VariableDeclaration","src":"2963:58:164","nodes":[],"constant":true,"mutability":"constant","name":"MINOR_PROTOCOL_VERSION_OFFSET","nameLocation":"2988:29:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82466,"name":"uint256","nodeType":"ElementaryTypeName","src":"2963:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"38","id":82467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3020:1:164","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"visibility":"private"},{"id":82478,"nodeType":"VariableDeclaration","src":"3028:83:164","nodes":[],"constant":true,"mutability":"constant","name":"PROTOCOL_VERSION_COMPONENT_MASK","nameLocation":"3053:31:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82469,"name":"uint256","nodeType":"ElementaryTypeName","src":"3028:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"expression":{"arguments":[{"id":82474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3100:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":82473,"name":"uint8","nodeType":"ElementaryTypeName","src":"3100:5:164","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":82472,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3095:4:164","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":82475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3095:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":82476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3107:3:164","memberName":"max","nodeType":"MemberAccess","src":"3095:15:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":82471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3087:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":82470,"name":"uint256","nodeType":"ElementaryTypeName","src":"3087:7:164","typeDescriptions":{}}},"id":82477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":82500,"nodeType":"VariableDeclaration","src":"3118:221:164","nodes":[],"constant":true,"mutability":"constant","name":"PROTOCOL_VERSION","nameLocation":"3143:16:164","scope":85532,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82479,"name":"uint256","nodeType":"ElementaryTypeName","src":"3118:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"id":82482,"name":"MAJOR_PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82456,"src":"3171:22:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":82481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3163:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":82480,"name":"uint256","nodeType":"ElementaryTypeName","src":"3163:7:164","typeDescriptions":{}}},"id":82483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3163:31:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":82484,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82465,"src":"3198:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3163:64:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":82486,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3162:66:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"id":82489,"name":"MINOR_PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82459,"src":"3248:22:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":82488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3240:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":82487,"name":"uint256","nodeType":"ElementaryTypeName","src":"3240:7:164","typeDescriptions":{}}},"id":82490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3240:31:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":82491,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82468,"src":"3275:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3240:64:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":82493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3239:66:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3162:143:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"arguments":[{"id":82497,"name":"PATCH_PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82462,"src":"3316:22:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":82496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3308:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":82495,"name":"uint256","nodeType":"ElementaryTypeName","src":"3308:7:164","typeDescriptions":{}}},"id":82498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3308:31:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3162:177:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":82508,"nodeType":"FunctionDefinition","src":"3414:53:164","nodes":[],"body":{"id":82507,"nodeType":"Block","src":"3428:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82504,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"3438:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82506,"nodeType":"ExpressionStatement","src":"3438:22:164"}]},"documentation":{"id":82501,"nodeType":"StructuredDocumentation","src":"3346:63:164","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82502,"nodeType":"ParameterList","parameters":[],"src":"3425:2:164"},"returnParameters":{"id":82503,"nodeType":"ParameterList","parameters":[],"src":"3428:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82718,"nodeType":"FunctionDefinition","src":"4651:2542:164","nodes":[],"body":{"id":82717,"nodeType":"Block","src":"5066:2127:164","nodes":[],"statements":[{"expression":{"arguments":[{"id":82537,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82511,"src":"5091:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82536,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"5076:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5076:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82539,"nodeType":"ExpressionStatement","src":"5076:22:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82540,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20641,"src":"5108:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5108:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82542,"nodeType":"ExpressionStatement","src":"5108:17:164"},{"expression":{"arguments":[{"id":82544,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"5149:11:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82545,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82444,"src":"5162:14:164","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":82543,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20792,"src":"5135:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5135:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82547,"nodeType":"ExpressionStatement","src":"5135:42:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82548,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20503,"src":"5187:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5187:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82550,"nodeType":"ExpressionStatement","src":"5187:15:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82552,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5381:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5387:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"5381:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5399:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5381:19:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82556,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77328,"src":"5402:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5402:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5373:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:48:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82559,"nodeType":"ExpressionStatement","src":"5373:48:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82561,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82521,"src":"5439:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5459:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5439:21:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82564,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77331,"src":"5462:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5462:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5431:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5431:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82567,"nodeType":"ExpressionStatement","src":"5431:57:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82569,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82519,"src":"5506:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":82570,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82521,"src":"5521:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5506:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82572,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77334,"src":"5540:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5540:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82568,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5498:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5498:64:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82575,"nodeType":"ExpressionStatement","src":"5498:64:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82577,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82523,"src":"5731:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82578,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82519,"src":"5751:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":82579,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82521,"src":"5766:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5751:32:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":82581,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5750:34:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":82582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5787:2:164","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5750:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5731:58:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82585,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77339,"src":"5791:21:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5791:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82576,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5723:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5723:92:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82588,"nodeType":"ExpressionStatement","src":"5723:92:164"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":82590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:25:164","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":82589,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85472,"src":"5826:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5826:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82592,"nodeType":"ExpressionStatement","src":"5826:42:164"},{"assignments":[82595],"declarations":[{"constant":false,"id":82595,"mutability":"mutable","name":"router","nameLocation":"5894:6:164","nodeType":"VariableDeclaration","scope":82717,"src":"5878:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82594,"nodeType":"UserDefinedTypeName","pathNode":{"id":82593,"name":"Storage","nameLocations":["5878:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"5878:7:164"},"referencedDeclaration":77269,"src":"5878:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82598,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82596,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"5903:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5903:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5878:34:164"},{"expression":{"id":82605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82599,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"5923:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5930:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"5923:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82602,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"5945:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5950:10:164","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":86752,"src":"5945:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$86259_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":82604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5945:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5923:39:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82606,"nodeType":"ExpressionStatement","src":"5923:39:164"},{"expression":{"id":82616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82607,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"5972:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5979:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"5972:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82612,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82513,"src":"6012:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82613,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82515,"src":"6021:12:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82614,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82517,"src":"6035:11:164","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":82610,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"5995:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:11:164","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":86130,"src":"5995:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$86130_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":82615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5995:52:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5972:75:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82617,"nodeType":"ExpressionStatement","src":"5972:75:164"},{"expression":{"id":82625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82618,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"6057:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6064:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"6057:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6083:18:164","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86368,"src":"6057:44:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82623,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"6104:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6109:30:164","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":86051,"src":"6104:35:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6057:82:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82626,"nodeType":"ExpressionStatement","src":"6057:82:164"},{"expression":{"id":82634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82627,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"6149:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6156:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"6149:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6175:20:164","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86370,"src":"6149:46:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82632,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"6198:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6203:32:164","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":86055,"src":"6198:37:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6149:86:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82635,"nodeType":"ExpressionStatement","src":"6149:86:164"},{"expression":{"id":82642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82636,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"6245:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6252:15:164","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":77260,"src":"6245:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82639,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"6270:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6275:26:164","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":86729,"src":"6270:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$86251_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":82641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6270:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"6245:58:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":82643,"nodeType":"ExpressionStatement","src":"6245:58:164"},{"expression":{"id":82653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82644,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"6313:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6320:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"6313:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82649,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82519,"src":"6347:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82650,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82521,"src":"6361:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82651,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82523,"src":"6380:16:164","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":82647,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"6332:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6337:9:164","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":86365,"src":"6332:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$86365_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":82652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6332:65:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"6313:84:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82654,"nodeType":"ExpressionStatement","src":"6313:84:164"},{"expression":{"id":82665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82655,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"6407:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6414:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"6407:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6427:13:164","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":86301,"src":"6407:33:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":82662,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82531,"src":"6450:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6462:6:164","memberName":"length","nodeType":"MemberAccess","src":"6450:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6443:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":82660,"name":"uint16","nodeType":"ElementaryTypeName","src":"6443:6:164","typeDescriptions":{}}},"id":82664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6443:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6407:62:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":82666,"nodeType":"ExpressionStatement","src":"6407:62:164"},{"assignments":[82668],"declarations":[{"constant":false,"id":82668,"mutability":"mutable","name":"decimalsFactor","nameLocation":"6488:14:164","nodeType":"VariableDeclaration","scope":82717,"src":"6480:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82667,"name":"uint256","nodeType":"ElementaryTypeName","src":"6480:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82676,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6505:2:164","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":82671,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82515,"src":"6524:12:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82670,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"6511:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77812_$","typeString":"type(contract IWrappedVara)"}},"id":82672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6511:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":82673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6538:8:164","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":2697,"src":"6511:35:164","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":82674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6511:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6505:43:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6480:68:164"},{"expression":{"id":82685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82677,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"6558:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6565:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"6558:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6578:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86304,"src":"6558:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82682,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82447,"src":"6609:40:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82683,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82668,"src":"6652:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6609:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6558:108:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82686,"nodeType":"ExpressionStatement","src":"6558:108:164"},{"expression":{"id":82695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82687,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"6676:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6683:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"6676:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6696:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86307,"src":"6676:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82692,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82450,"src":"6728:41:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82693,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82668,"src":"6772:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6728:58:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6676:110:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82696,"nodeType":"ExpressionStatement","src":"6676:110:164"},{"expression":{"arguments":[{"expression":{"expression":{"id":82698,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"6868:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6875:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"6868:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6894:11:164","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":86373,"src":"6868:37:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"}},{"hexValue":"74727565","id":82701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6919:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":82702,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82526,"src":"6937:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":82703,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82528,"src":"6971:34:164","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":82704,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82531,"src":"7019:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":82705,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7044:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7050:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"7044:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$86107_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_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":82697,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85419,"src":"6838:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$86107_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$86086_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":82707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6838:231:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82708,"nodeType":"ExpressionStatement","src":"6838:231:164"},{"expression":{"id":82715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82709,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82595,"src":"7132:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7139:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"7132:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7152:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86310,"src":"7132:35:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82714,"name":"PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82500,"src":"7170:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7132:54:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82716,"nodeType":"ExpressionStatement","src":"7132:54:164"}]},"documentation":{"id":82509,"nodeType":"StructuredDocumentation","src":"3473:1173:164","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":82534,"kind":"modifierInvocation","modifierName":{"id":82533,"name":"initializer","nameLocations":["5054:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"5054:11:164"},"nodeType":"ModifierInvocation","src":"5054:11:164"}],"name":"initialize","nameLocation":"4660:10:164","parameters":{"id":82532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82511,"mutability":"mutable","name":"_owner","nameLocation":"4688:6:164","nodeType":"VariableDeclaration","scope":82718,"src":"4680:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82510,"name":"address","nodeType":"ElementaryTypeName","src":"4680:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82513,"mutability":"mutable","name":"_mirror","nameLocation":"4712:7:164","nodeType":"VariableDeclaration","scope":82718,"src":"4704:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82512,"name":"address","nodeType":"ElementaryTypeName","src":"4704:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82515,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4737:12:164","nodeType":"VariableDeclaration","scope":82718,"src":"4729:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82514,"name":"address","nodeType":"ElementaryTypeName","src":"4729:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82517,"mutability":"mutable","name":"_middleware","nameLocation":"4767:11:164","nodeType":"VariableDeclaration","scope":82718,"src":"4759:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82516,"name":"address","nodeType":"ElementaryTypeName","src":"4759:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82519,"mutability":"mutable","name":"_eraDuration","nameLocation":"4796:12:164","nodeType":"VariableDeclaration","scope":82718,"src":"4788:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82518,"name":"uint256","nodeType":"ElementaryTypeName","src":"4788:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82521,"mutability":"mutable","name":"_electionDuration","nameLocation":"4826:17:164","nodeType":"VariableDeclaration","scope":82718,"src":"4818:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82520,"name":"uint256","nodeType":"ElementaryTypeName","src":"4818:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82523,"mutability":"mutable","name":"_validationDelay","nameLocation":"4861:16:164","nodeType":"VariableDeclaration","scope":82718,"src":"4853:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4853:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82526,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4921:20:164","nodeType":"VariableDeclaration","scope":82718,"src":"4887:54:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82525,"nodeType":"UserDefinedTypeName","pathNode":{"id":82524,"name":"Gear.AggregatedPublicKey","nameLocations":["4887:4:164","4892:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":86086,"src":"4887:24:164"},"referencedDeclaration":86086,"src":"4887:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82528,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4966:34:164","nodeType":"VariableDeclaration","scope":82718,"src":"4951:49:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":82527,"name":"bytes","nodeType":"ElementaryTypeName","src":"4951:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82531,"mutability":"mutable","name":"_validators","nameLocation":"5029:11:164","nodeType":"VariableDeclaration","scope":82718,"src":"5010:30:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82529,"name":"address","nodeType":"ElementaryTypeName","src":"5010:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82530,"nodeType":"ArrayTypeName","src":"5010:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4670:376:164"},"returnParameters":{"id":82535,"nodeType":"ParameterList","parameters":[],"src":"5066:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82821,"nodeType":"FunctionDefinition","src":"7513:3088:164","nodes":[],"body":{"id":82820,"nodeType":"Block","src":"7571:3030:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82728,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"9844:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":82729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9844:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82727,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"9829:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9829:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82731,"nodeType":"ExpressionStatement","src":"9829:23:164"},{"expression":{"arguments":[{"id":82733,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82441,"src":"9876:11:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82734,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82444,"src":"9889:14:164","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":82732,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20792,"src":"9862:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82736,"nodeType":"ExpressionStatement","src":"9862:42:164"},{"assignments":[82739],"declarations":[{"constant":false,"id":82739,"mutability":"mutable","name":"router","nameLocation":"9931:6:164","nodeType":"VariableDeclaration","scope":82820,"src":"9915:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82738,"nodeType":"UserDefinedTypeName","pathNode":{"id":82737,"name":"Storage","nameLocations":["9915:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"9915:7:164"},"referencedDeclaration":77269,"src":"9915:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82742,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82740,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"9940:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9940:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9915:34:164"},{"expression":{"id":82749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82743,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82739,"src":"9959:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9966:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"9959:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82746,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"9981:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9986:10:164","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":86752,"src":"9981:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$86259_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":82748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9981:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9959:39:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82750,"nodeType":"ExpressionStatement","src":"9959:39:164"},{"expression":{"id":82762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82751,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82739,"src":"10008:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10015:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77248,"src":"10008:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":82758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10077:1:164","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":82757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10069:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10069:7:164","typeDescriptions":{}}},"id":82759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10069:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":82760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10092:1:164","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":82754,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"10038:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10043:18:164","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":86245,"src":"10038:23:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$86245_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":82761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10063:4:164","10081:9:164"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"10038:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"10008:87:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82763,"nodeType":"ExpressionStatement","src":"10008:87:164"},{"expression":{"id":82778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82764,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82739,"src":"10105:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10112:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"10105:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10125:13:164","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":86301,"src":"10105:33:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":82773,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82739,"src":"10174:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82771,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"10148:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10153:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":87019,"src":"10148:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10148:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10182:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":86103,"src":"10148:38:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10187:6:164","memberName":"length","nodeType":"MemberAccess","src":"10148:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10141:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":82769,"name":"uint16","nodeType":"ElementaryTypeName","src":"10141:6:164","typeDescriptions":{}}},"id":82777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10141:53:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10105:89:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":82779,"nodeType":"ExpressionStatement","src":"10105:89:164"},{"assignments":[82781],"declarations":[{"constant":false,"id":82781,"mutability":"mutable","name":"decimalsFactor","nameLocation":"10212:14:164","nodeType":"VariableDeclaration","scope":82820,"src":"10204:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82780,"name":"uint256","nodeType":"ElementaryTypeName","src":"10204:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82791,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10229:2:164","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":82784,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82739,"src":"10248:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10255:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"10248:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10269:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":86126,"src":"10248:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82783,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"10235:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77812_$","typeString":"type(contract IWrappedVara)"}},"id":82787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10235:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":82788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10282:8:164","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":2697,"src":"10235:55:164","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":82789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10235:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10229:63:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10204:88:164"},{"expression":{"id":82800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82792,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82739,"src":"10302:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10309:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"10302:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10322:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86304,"src":"10302:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82797,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82447,"src":"10353:40:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82798,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82781,"src":"10396:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10353:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10302:108:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82801,"nodeType":"ExpressionStatement","src":"10302:108:164"},{"expression":{"id":82810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82802,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82739,"src":"10420:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10427:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"10420:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10440:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86307,"src":"10420:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82807,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82450,"src":"10472:41:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82808,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82781,"src":"10516:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10472:58:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10420:110:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82811,"nodeType":"ExpressionStatement","src":"10420:110:164"},{"expression":{"id":82818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82812,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82739,"src":"10540:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10547:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"10540:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10560:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86310,"src":"10540:35:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82817,"name":"PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82500,"src":"10578:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10540:54:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82819,"nodeType":"ExpressionStatement","src":"10540:54:164"}]},"documentation":{"id":82719,"nodeType":"StructuredDocumentation","src":"7199:309:164","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":82722,"kind":"modifierInvocation","modifierName":{"id":82721,"name":"onlyOwner","nameLocations":["7544:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"7544:9:164"},"nodeType":"ModifierInvocation","src":"7544:9:164"},{"arguments":[{"hexValue":"35","id":82724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:164","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":82725,"kind":"modifierInvocation","modifierName":{"id":82723,"name":"reinitializer","nameLocations":["7554:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"7554:13:164"},"nodeType":"ModifierInvocation","src":"7554:16:164"}],"name":"reinitialize","nameLocation":"7522:12:164","parameters":{"id":82720,"nodeType":"ParameterList","parameters":[],"src":"7534:2:164"},"returnParameters":{"id":82726,"nodeType":"ParameterList","parameters":[],"src":"7571:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82831,"nodeType":"FunctionDefinition","src":"10766:84:164","nodes":[],"body":{"id":82830,"nodeType":"Block","src":"10848:2:164","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":82822,"nodeType":"StructuredDocumentation","src":"10607: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":82828,"kind":"modifierInvocation","modifierName":{"id":82827,"name":"onlyOwner","nameLocations":["10838:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"10838:9:164"},"nodeType":"ModifierInvocation","src":"10838:9:164"}],"name":"_authorizeUpgrade","nameLocation":"10775:17:164","overrides":{"id":82826,"nodeType":"OverrideSpecifier","overrides":[],"src":"10829:8:164"},"parameters":{"id":82825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82824,"mutability":"mutable","name":"newImplementation","nameLocation":"10801:17:164","nodeType":"VariableDeclaration","scope":82831,"src":"10793:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82823,"name":"address","nodeType":"ElementaryTypeName","src":"10793:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10792:27:164"},"returnParameters":{"id":82829,"nodeType":"ParameterList","parameters":[],"src":"10848:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82888,"nodeType":"FunctionDefinition","src":"11022:1014:164","nodes":[],"body":{"id":82887,"nodeType":"Block","src":"11086:950:164","nodes":[],"statements":[{"assignments":[82840],"declarations":[{"constant":false,"id":82840,"mutability":"mutable","name":"router","nameLocation":"11112:6:164","nodeType":"VariableDeclaration","scope":82887,"src":"11096:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82839,"nodeType":"UserDefinedTypeName","pathNode":{"id":82838,"name":"Storage","nameLocations":["11096:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"11096:7:164"},"referencedDeclaration":77269,"src":"11096:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82843,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82841,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"11121:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11121:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11096:34:164"},{"assignments":[82848],"declarations":[{"constant":false,"id":82848,"mutability":"mutable","name":"validationSettings","nameLocation":"11175:18:164","nodeType":"VariableDeclaration","scope":82887,"src":"11140:53:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86389_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":82847,"nodeType":"UserDefinedTypeName","pathNode":{"id":82846,"name":"Gear.ValidationSettingsView","nameLocations":["11140:4:164","11145:22:164"],"nodeType":"IdentifierPath","referencedDeclaration":86389,"src":"11140:27:164"},"referencedDeclaration":86389,"src":"11140:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86389_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":82854,"initialValue":{"arguments":[{"expression":{"id":82851,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11208:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11215:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"11208:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":82849,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"11196:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11201:6:164","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":87299,"src":"11196:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$86377_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$86389_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":82853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11196:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86389_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"11140:94:164"},{"expression":{"arguments":[{"expression":{"id":82856,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11291:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11298:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"11291:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":82858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11346:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11353:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77248,"src":"11346:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":82860,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11402:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11409:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"11402:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":82862,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82848,"src":"11456:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$86389_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":82863,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11505:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11512:15:164","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":77260,"src":"11505:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":82865,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11552:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11559:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"11552:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":82867,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11597:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11604:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"11597:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11617:13:164","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":86295,"src":"11597:33:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82870,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11665:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11672:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"11665:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11685:19:164","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":86298,"src":"11665:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82873,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11733:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11740:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"11733:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11753:13:164","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":86301,"src":"11733:33:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":82876,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11810:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11817:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"11810:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11830:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86304,"src":"11810:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82879,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11903:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11910:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"11903:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11923:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86307,"src":"11903:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82882,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82840,"src":"11983:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11990:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"11983:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12003:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86310,"src":"11983:35:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$86389_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$86251_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$86365_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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82855,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77236,"src":"11251:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$77236_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":82885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11277:12:164","11324:20:164","11387:13:164","11436:18:164","11488:15:164","11541:9:164","11582:13:164","11644:19:164","11718:13:164","11780:28:164","11872:29:164","11966:15:164"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee","protocolVersion"],"nodeType":"FunctionCall","src":"11251:778:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$77236_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":82837,"id":82886,"nodeType":"Return","src":"11244:785:164"}]},"baseFunctions":[77432],"documentation":{"id":82832,"nodeType":"StructuredDocumentation","src":"10875:142:164","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":"11031:11:164","parameters":{"id":82833,"nodeType":"ParameterList","parameters":[],"src":"11042:2:164"},"returnParameters":{"id":82837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82888,"src":"11066:18:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$77236_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":82835,"nodeType":"UserDefinedTypeName","pathNode":{"id":82834,"name":"StorageView","nameLocations":["11066:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":77236,"src":"11066:11:164"},"referencedDeclaration":77236,"src":"11066:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$77236_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"11065:20:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82900,"nodeType":"FunctionDefinition","src":"12172:109:164","nodes":[],"body":{"id":82899,"nodeType":"Block","src":"12230:51:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82894,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"12247:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12247:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12257:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"12247:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12270:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"12247:27:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82893,"id":82898,"nodeType":"Return","src":"12240:34:164"}]},"baseFunctions":[77438],"documentation":{"id":82889,"nodeType":"StructuredDocumentation","src":"12042:125:164","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":"12181:16:164","parameters":{"id":82890,"nodeType":"ParameterList","parameters":[],"src":"12197:2:164"},"returnParameters":{"id":82893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82900,"src":"12221:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82891,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12221:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12220:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82912,"nodeType":"FunctionDefinition","src":"12427:113:164","nodes":[],"body":{"id":82911,"nodeType":"Block","src":"12484:56:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82906,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"12501:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12501:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12511:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"12501:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12524:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86258,"src":"12501:32:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":82905,"id":82910,"nodeType":"Return","src":"12494:39:164"}]},"baseFunctions":[77444],"documentation":{"id":82901,"nodeType":"StructuredDocumentation","src":"12287:135:164","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":"12436:16:164","parameters":{"id":82902,"nodeType":"ParameterList","parameters":[],"src":"12452:2:164"},"returnParameters":{"id":82905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82912,"src":"12476:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82903,"name":"uint48","nodeType":"ElementaryTypeName","src":"12476:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12475:8:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82924,"nodeType":"FunctionDefinition","src":"12702:125:164","nodes":[],"body":{"id":82923,"nodeType":"Block","src":"12768:59:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82918,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"12785:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12785:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12795:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77248,"src":"12785:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12816:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86242,"src":"12785:35:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82917,"id":82922,"nodeType":"Return","src":"12778:42:164"}]},"baseFunctions":[77450],"documentation":{"id":82913,"nodeType":"StructuredDocumentation","src":"12546:151:164","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":"12711:24:164","parameters":{"id":82914,"nodeType":"ParameterList","parameters":[],"src":"12735:2:164"},"returnParameters":{"id":82917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82924,"src":"12759:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12759:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12758:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82936,"nodeType":"FunctionDefinition","src":"13004:134:164","nodes":[],"body":{"id":82935,"nodeType":"Block","src":"13074:64:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82930,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"13091:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13091:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13101:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77248,"src":"13091:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13122:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86244,"src":"13091:40:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":82929,"id":82934,"nodeType":"Return","src":"13084:47:164"}]},"baseFunctions":[77456],"documentation":{"id":82925,"nodeType":"StructuredDocumentation","src":"12833:166:164","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":"13013:29:164","parameters":{"id":82926,"nodeType":"ParameterList","parameters":[],"src":"13042:2:164"},"returnParameters":{"id":82929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82936,"src":"13066:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82927,"name":"uint48","nodeType":"ElementaryTypeName","src":"13066:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13065:8:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82948,"nodeType":"FunctionDefinition","src":"13290:106:164","nodes":[],"body":{"id":82947,"nodeType":"Block","src":"13342:54:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82942,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"13359:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13359:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13369:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"13359:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13383:6:164","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":86123,"src":"13359:30:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82941,"id":82946,"nodeType":"Return","src":"13352:37:164"}]},"baseFunctions":[77462],"documentation":{"id":82937,"nodeType":"StructuredDocumentation","src":"13144:141:164","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":"13299:10:164","parameters":{"id":82938,"nodeType":"ParameterList","parameters":[],"src":"13309:2:164"},"returnParameters":{"id":82941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82948,"src":"13333:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82939,"name":"address","nodeType":"ElementaryTypeName","src":"13333:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13332:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82960,"nodeType":"FunctionDefinition","src":"13561:112:164","nodes":[],"body":{"id":82959,"nodeType":"Block","src":"13614:59:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82954,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"13631:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13631:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13641:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"13631:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13655:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":86126,"src":"13631:35:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82953,"id":82958,"nodeType":"Return","src":"13624:42:164"}]},"baseFunctions":[77468],"documentation":{"id":82949,"nodeType":"StructuredDocumentation","src":"13402:154:164","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":"13570:11:164","parameters":{"id":82950,"nodeType":"ParameterList","parameters":[],"src":"13581:2:164"},"returnParameters":{"id":82953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82960,"src":"13605:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82951,"name":"address","nodeType":"ElementaryTypeName","src":"13605:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13604:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82972,"nodeType":"FunctionDefinition","src":"13833:110:164","nodes":[],"body":{"id":82971,"nodeType":"Block","src":"13885:58:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82966,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"13902:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13902:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13912:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"13902:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13926:10:164","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":86129,"src":"13902:34:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82965,"id":82970,"nodeType":"Return","src":"13895:41:164"}]},"baseFunctions":[77474],"documentation":{"id":82961,"nodeType":"StructuredDocumentation","src":"13679:149:164","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":"13842:10:164","parameters":{"id":82962,"nodeType":"ParameterList","parameters":[],"src":"13852:2:164"},"returnParameters":{"id":82965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82972,"src":"13876:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82963,"name":"address","nodeType":"ElementaryTypeName","src":"13876:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13875:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82987,"nodeType":"FunctionDefinition","src":"14136:175:164","nodes":[],"body":{"id":82986,"nodeType":"Block","src":"14231:80:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82981,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"14274:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14274:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82979,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"14248:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14253:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":87019,"src":"14248:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14248:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14285:19:164","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86091,"src":"14248:56:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":82978,"id":82985,"nodeType":"Return","src":"14241:63:164"}]},"baseFunctions":[77481],"documentation":{"id":82973,"nodeType":"StructuredDocumentation","src":"13949:182:164","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":"14145:29:164","parameters":{"id":82974,"nodeType":"ParameterList","parameters":[],"src":"14174:2:164"},"returnParameters":{"id":82978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82987,"src":"14198:31:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82976,"nodeType":"UserDefinedTypeName","pathNode":{"id":82975,"name":"Gear.AggregatedPublicKey","nameLocations":["14198:4:164","14203:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":86086,"src":"14198:24:164"},"referencedDeclaration":86086,"src":"14198:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"14197:33:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83004,"nodeType":"FunctionDefinition","src":"14777:207:164","nodes":[],"body":{"id":83003,"nodeType":"Block","src":"14869:115:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82997,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"14925:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14925:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82995,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"14899:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":82996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14904:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":87019,"src":"14899:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14899:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14936:40:164","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":86094,"src":"14899:77:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":82993,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87756,"src":"14886:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$87756_$","typeString":"type(library SSTORE2)"}},"id":82994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14894:4:164","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":87729,"src":"14886:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":83001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14886:91:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":82992,"id":83002,"nodeType":"Return","src":"14879:98:164"}]},"baseFunctions":[77487],"documentation":{"id":82988,"nodeType":"StructuredDocumentation","src":"14317:455:164","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":"14786:43:164","parameters":{"id":82989,"nodeType":"ParameterList","parameters":[],"src":"14829:2:164"},"returnParameters":{"id":82992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83004,"src":"14855:12:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82990,"name":"bytes","nodeType":"ElementaryTypeName","src":"14855:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14854:14:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83051,"nodeType":"FunctionDefinition","src":"15156:375:164","nodes":[],"body":{"id":83050,"nodeType":"Block","src":"15238:293:164","nodes":[],"statements":[{"assignments":[83017],"declarations":[{"constant":false,"id":83017,"mutability":"mutable","name":"_currentValidators","nameLocation":"15272:18:164","nodeType":"VariableDeclaration","scope":83050,"src":"15248:42:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83016,"nodeType":"UserDefinedTypeName","pathNode":{"id":83015,"name":"Gear.Validators","nameLocations":["15248:4:164","15253:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"15248:15:164"},"referencedDeclaration":86107,"src":"15248:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":83023,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":83020,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"15319:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15319:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":83018,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"15293:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15298:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":87019,"src":"15293:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":83022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15293:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15248:81:164"},{"body":{"id":83046,"nodeType":"Block","src":"15389:114:164","statements":[{"condition":{"id":83041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15407:39:164","subExpression":{"baseExpression":{"expression":{"id":83035,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83017,"src":"15408:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15427:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":86099,"src":"15408:22:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":83040,"indexExpression":{"baseExpression":{"id":83037,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83008,"src":"15431:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83039,"indexExpression":{"id":83038,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83025,"src":"15443:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15431:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15408:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83045,"nodeType":"IfStatement","src":"15403:90:164","trueBody":{"id":83044,"nodeType":"Block","src":"15448:45:164","statements":[{"expression":{"hexValue":"66616c7365","id":83042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15473:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83012,"id":83043,"nodeType":"Return","src":"15466:12:164"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83028,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83025,"src":"15360:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83029,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83008,"src":"15364:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15376:6:164","memberName":"length","nodeType":"MemberAccess","src":"15364:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15360:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83047,"initializationExpression":{"assignments":[83025],"declarations":[{"constant":false,"id":83025,"mutability":"mutable","name":"i","nameLocation":"15353:1:164","nodeType":"VariableDeclaration","scope":83047,"src":"15345:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83024,"name":"uint256","nodeType":"ElementaryTypeName","src":"15345:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83027,"initialValue":{"hexValue":"30","id":83026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15357:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15345:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15384:3:164","subExpression":{"id":83032,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83025,"src":"15384:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83034,"nodeType":"ExpressionStatement","src":"15384:3:164"},"nodeType":"ForStatement","src":"15340:163:164"},{"expression":{"hexValue":"74727565","id":83048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15520:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83012,"id":83049,"nodeType":"Return","src":"15513:11:164"}]},"baseFunctions":[77496],"documentation":{"id":83005,"nodeType":"StructuredDocumentation","src":"14990:161:164","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":"15165:13:164","parameters":{"id":83009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83008,"mutability":"mutable","name":"_validators","nameLocation":"15198:11:164","nodeType":"VariableDeclaration","scope":83051,"src":"15179:30:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83006,"name":"address","nodeType":"ElementaryTypeName","src":"15179:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83007,"nodeType":"ArrayTypeName","src":"15179:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15178:32:164"},"returnParameters":{"id":83012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83051,"src":"15232:4:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83010,"name":"bool","nodeType":"ElementaryTypeName","src":"15232:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15231:6:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83069,"nodeType":"FunctionDefinition","src":"15693:144:164","nodes":[],"body":{"id":83068,"nodeType":"Block","src":"15761:76:164","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":83061,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"15804:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15804:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":83059,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"15778:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15783:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":87019,"src":"15778:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":83063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15778:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15815:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":86099,"src":"15778:40:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":83066,"indexExpression":{"id":83065,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83054,"src":"15819:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15778:52:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83058,"id":83067,"nodeType":"Return","src":"15771:59:164"}]},"baseFunctions":[77504],"documentation":{"id":83052,"nodeType":"StructuredDocumentation","src":"15537:151:164","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":"15702:11:164","parameters":{"id":83055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83054,"mutability":"mutable","name":"_validator","nameLocation":"15722:10:164","nodeType":"VariableDeclaration","scope":83069,"src":"15714:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83053,"name":"address","nodeType":"ElementaryTypeName","src":"15714:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15713:20:164"},"returnParameters":{"id":83058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83069,"src":"15755:4:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83056,"name":"bool","nodeType":"ElementaryTypeName","src":"15755:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15754:6:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83094,"nodeType":"FunctionDefinition","src":"16081:285:164","nodes":[],"body":{"id":83093,"nodeType":"Block","src":"16196:170:164","nodes":[],"statements":[{"assignments":[83081],"declarations":[{"constant":false,"id":83081,"mutability":"mutable","name":"router","nameLocation":"16230:6:164","nodeType":"VariableDeclaration","scope":83093,"src":"16206:30:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83080,"nodeType":"UserDefinedTypeName","pathNode":{"id":83079,"name":"IRouter.Storage","nameLocations":["16206:7:164","16214:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"16206:15:164"},"referencedDeclaration":77269,"src":"16206:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83084,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83082,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"16239:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16239:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16206:42:164"},{"expression":{"components":[{"expression":{"expression":{"id":83085,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83081,"src":"16266:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16273:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"16266:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16292:18:164","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86368,"src":"16266:44:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83088,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83081,"src":"16312:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16319:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"16312:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16338:20:164","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86370,"src":"16312:46:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":83091,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16265:94:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":83076,"id":83092,"nodeType":"Return","src":"16258:101:164"}]},"baseFunctions":[77512],"documentation":{"id":83070,"nodeType":"StructuredDocumentation","src":"15843:233:164","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":"16090:24:164","parameters":{"id":83071,"nodeType":"ParameterList","parameters":[],"src":"16114:2:164"},"returnParameters":{"id":83076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83073,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16146:18:164","nodeType":"VariableDeclaration","scope":83094,"src":"16138:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83072,"name":"uint128","nodeType":"ElementaryTypeName","src":"16138:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83075,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16174:20:164","nodeType":"VariableDeclaration","scope":83094,"src":"16166:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83074,"name":"uint128","nodeType":"ElementaryTypeName","src":"16166:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16137:58:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83109,"nodeType":"FunctionDefinition","src":"16498:126:164","nodes":[],"body":{"id":83108,"nodeType":"Block","src":"16559:65:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":83103,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"16602:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16602:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":83101,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"16576:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16581:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":87019,"src":"16576:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":83105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16576:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":86103,"src":"16576:41:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":83100,"id":83107,"nodeType":"Return","src":"16569:48:164"}]},"baseFunctions":[77519],"documentation":{"id":83095,"nodeType":"StructuredDocumentation","src":"16372:121:164","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":"16507:10:164","parameters":{"id":83096,"nodeType":"ParameterList","parameters":[],"src":"16517:2:164"},"returnParameters":{"id":83100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83109,"src":"16541:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83097,"name":"address","nodeType":"ElementaryTypeName","src":"16541:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83098,"nodeType":"ArrayTypeName","src":"16541:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"16540:18:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83124,"nodeType":"FunctionDefinition","src":"16763:129:164","nodes":[],"body":{"id":83123,"nodeType":"Block","src":"16820:72:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":83117,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"16863:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16863:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":83115,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"16837:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16842:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":87019,"src":"16837:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":83119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16837:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16874:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":86103,"src":"16837:41:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":83121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16879:6:164","memberName":"length","nodeType":"MemberAccess","src":"16837:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83114,"id":83122,"nodeType":"Return","src":"16830:55:164"}]},"baseFunctions":[77525],"documentation":{"id":83110,"nodeType":"StructuredDocumentation","src":"16630:128:164","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":"16772:15:164","parameters":{"id":83111,"nodeType":"ParameterList","parameters":[],"src":"16787:2:164"},"returnParameters":{"id":83114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83124,"src":"16811:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83112,"name":"uint256","nodeType":"ElementaryTypeName","src":"16811:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16810:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83155,"nodeType":"FunctionDefinition","src":"17093:348:164","nodes":[],"body":{"id":83154,"nodeType":"Block","src":"17154:287:164","nodes":[],"statements":[{"assignments":[83134],"declarations":[{"constant":false,"id":83134,"mutability":"mutable","name":"router","nameLocation":"17188:6:164","nodeType":"VariableDeclaration","scope":83154,"src":"17164:30:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83133,"nodeType":"UserDefinedTypeName","pathNode":{"id":83132,"name":"IRouter.Storage","nameLocations":["17164:7:164","17172:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"17164:15:164"},"referencedDeclaration":77269,"src":"17164:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83137,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83135,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"17197:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17197:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17164:42:164"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":83142,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83134,"src":"17287:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":83140,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"17261:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":87019,"src":"17261:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":83143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17261:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17295:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":86103,"src":"17261:38:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":83145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17300:6:164","memberName":"length","nodeType":"MemberAccess","src":"17261:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83146,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83134,"src":"17320:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17327:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"17320:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:18:164","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":86368,"src":"17320:44:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83149,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83134,"src":"17378:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17385:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"17378:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$86377_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17404:20:164","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":86370,"src":"17378:46:164","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":83138,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"17223:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17228:19:164","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":87187,"src":"17223:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":83152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17223:211:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83129,"id":83153,"nodeType":"Return","src":"17216:218:164"}]},"baseFunctions":[77531],"documentation":{"id":83125,"nodeType":"StructuredDocumentation","src":"16898:190:164","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":"17102:19:164","parameters":{"id":83126,"nodeType":"ParameterList","parameters":[],"src":"17121:2:164"},"returnParameters":{"id":83129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83155,"src":"17145:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83127,"name":"uint256","nodeType":"ElementaryTypeName","src":"17145:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17144:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83169,"nodeType":"FunctionDefinition","src":"17613:122:164","nodes":[],"body":{"id":83168,"nodeType":"Block","src":"17697:38:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83164,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"17714:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$85532_$","typeString":"type(contract super Router)"}},"id":83165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17720:6:164","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":20663,"src":"17714:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":83166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83163,"id":83167,"nodeType":"Return","src":"17707:21:164"}]},"baseFunctions":[20663,77537],"documentation":{"id":83156,"nodeType":"StructuredDocumentation","src":"17447:161:164","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":"17622:6:164","overrides":{"id":83160,"nodeType":"OverrideSpecifier","overrides":[{"id":83158,"name":"IRouter","nameLocations":["17652:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77796,"src":"17652:7:164"},{"id":83159,"name":"PausableUpgradeable","nameLocations":["17661:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":20737,"src":"17661:19:164"}],"src":"17643:38:164"},"parameters":{"id":83157,"nodeType":"ParameterList","parameters":[],"src":"17628:2:164"},"returnParameters":{"id":83163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83169,"src":"17691:4:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83161,"name":"bool","nodeType":"ElementaryTypeName","src":"17691:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17690:6:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83181,"nodeType":"FunctionDefinition","src":"17860:130:164","nodes":[],"body":{"id":83180,"nodeType":"Block","src":"17941:49:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83176,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"17958:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17958:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17968:15:164","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":77260,"src":"17958:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":83175,"id":83179,"nodeType":"Return","src":"17951:32:164"}]},"baseFunctions":[77544],"documentation":{"id":83170,"nodeType":"StructuredDocumentation","src":"17741:114:164","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17869:15:164","parameters":{"id":83171,"nodeType":"ParameterList","parameters":[],"src":"17884:2:164"},"returnParameters":{"id":83175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83181,"src":"17908:31:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":83173,"nodeType":"UserDefinedTypeName","pathNode":{"id":83172,"name":"Gear.ComputationSettings","nameLocations":["17908:4:164","17913:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":86251,"src":"17908:24:164"},"referencedDeclaration":86251,"src":"17908:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$86251_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17907:33:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83198,"nodeType":"FunctionDefinition","src":"18099:134:164","nodes":[],"body":{"id":83197,"nodeType":"Block","src":"18172:61:164","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83190,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"18189:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18189:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18199:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"18189:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18212:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"18189:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83195,"indexExpression":{"id":83194,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83184,"src":"18218:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18189:37:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"functionReturnParameters":83189,"id":83196,"nodeType":"Return","src":"18182:44:164"}]},"baseFunctions":[77553],"documentation":{"id":83182,"nodeType":"StructuredDocumentation","src":"17996:98:164","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":"18108:9:164","parameters":{"id":83185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83184,"mutability":"mutable","name":"_codeId","nameLocation":"18126:7:164","nodeType":"VariableDeclaration","scope":83198,"src":"18118:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18118:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18117:17:164"},"returnParameters":{"id":83189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83188,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83198,"src":"18156:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"},"typeName":{"id":83187,"nodeType":"UserDefinedTypeName","pathNode":{"id":83186,"name":"Gear.CodeState","nameLocations":["18156:4:164","18161:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86239,"src":"18156:14:164"},"referencedDeclaration":86239,"src":"18156:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"18155:16:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83257,"nodeType":"FunctionDefinition","src":"18357:378:164","nodes":[],"body":{"id":83256,"nodeType":"Block","src":"18454:281:164","nodes":[],"statements":[{"assignments":[83211],"declarations":[{"constant":false,"id":83211,"mutability":"mutable","name":"router","nameLocation":"18480:6:164","nodeType":"VariableDeclaration","scope":83256,"src":"18464:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83210,"nodeType":"UserDefinedTypeName","pathNode":{"id":83209,"name":"Storage","nameLocations":["18464:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"18464:7:164"},"referencedDeclaration":77269,"src":"18464:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83214,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83212,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"18489:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18489:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18464:34:164"},{"assignments":[83220],"declarations":[{"constant":false,"id":83220,"mutability":"mutable","name":"res","nameLocation":"18533:3:164","nodeType":"VariableDeclaration","scope":83256,"src":"18509:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86239_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":83218,"nodeType":"UserDefinedTypeName","pathNode":{"id":83217,"name":"Gear.CodeState","nameLocations":["18509:4:164","18514:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86239,"src":"18509:14:164"},"referencedDeclaration":86239,"src":"18509:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"id":83219,"nodeType":"ArrayTypeName","src":"18509:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86239_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":83228,"initialValue":{"arguments":[{"expression":{"id":83225,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83202,"src":"18560:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18570:6:164","memberName":"length","nodeType":"MemberAccess","src":"18560:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18539:20:164","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$86239_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":83222,"nodeType":"UserDefinedTypeName","pathNode":{"id":83221,"name":"Gear.CodeState","nameLocations":["18543:4:164","18548:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86239,"src":"18543:14:164"},"referencedDeclaration":86239,"src":"18543:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"id":83223,"nodeType":"ArrayTypeName","src":"18543:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86239_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":83227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18539:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86239_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18509:68:164"},{"body":{"id":83252,"nodeType":"Block","src":"18635:73:164","statements":[{"expression":{"id":83250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":83240,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83220,"src":"18649:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86239_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":83242,"indexExpression":{"id":83241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83230,"src":"18653:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18649:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":83243,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83211,"src":"18658:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18665:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"18658:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18678:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"18658:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83249,"indexExpression":{"baseExpression":{"id":83246,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83202,"src":"18684:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83248,"indexExpression":{"id":83247,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83230,"src":"18694:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18684:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18658:39:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"src":"18649:48:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"id":83251,"nodeType":"ExpressionStatement","src":"18649:48:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83233,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83230,"src":"18608:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83234,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83202,"src":"18612:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18622:6:164","memberName":"length","nodeType":"MemberAccess","src":"18612:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18608:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83253,"initializationExpression":{"assignments":[83230],"declarations":[{"constant":false,"id":83230,"mutability":"mutable","name":"i","nameLocation":"18601:1:164","nodeType":"VariableDeclaration","scope":83253,"src":"18593:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83229,"name":"uint256","nodeType":"ElementaryTypeName","src":"18593:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83232,"initialValue":{"hexValue":"30","id":83231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18605:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18593:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18630:3:164","subExpression":{"id":83237,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83230,"src":"18630:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83239,"nodeType":"ExpressionStatement","src":"18630:3:164"},"nodeType":"ForStatement","src":"18588:120:164"},{"expression":{"id":83254,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83220,"src":"18725:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86239_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":83208,"id":83255,"nodeType":"Return","src":"18718:10:164"}]},"baseFunctions":[77564],"documentation":{"id":83199,"nodeType":"StructuredDocumentation","src":"18239:113:164","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":"18366:11:164","parameters":{"id":83203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83202,"mutability":"mutable","name":"_codesIds","nameLocation":"18397:9:164","nodeType":"VariableDeclaration","scope":83257,"src":"18378:28:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18378:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83201,"nodeType":"ArrayTypeName","src":"18378:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18377:30:164"},"returnParameters":{"id":83208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83257,"src":"18429:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86239_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":83205,"nodeType":"UserDefinedTypeName","pathNode":{"id":83204,"name":"Gear.CodeState","nameLocations":["18429:4:164","18434:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86239,"src":"18429:14:164"},"referencedDeclaration":86239,"src":"18429:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"id":83206,"nodeType":"ArrayTypeName","src":"18429:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$86239_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"18428:25:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83273,"nodeType":"FunctionDefinition","src":"18861:140:164","nodes":[],"body":{"id":83272,"nodeType":"Block","src":"18934:67:164","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83265,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"18951:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18951:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18961:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"18951:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18974:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86292,"src":"18951:31:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":83270,"indexExpression":{"id":83269,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83260,"src":"18983:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18951:43:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83264,"id":83271,"nodeType":"Return","src":"18944:50:164"}]},"baseFunctions":[77572],"documentation":{"id":83258,"nodeType":"StructuredDocumentation","src":"18741:115:164","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":"18870:13:164","parameters":{"id":83261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83260,"mutability":"mutable","name":"_programId","nameLocation":"18892:10:164","nodeType":"VariableDeclaration","scope":83273,"src":"18884:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83259,"name":"address","nodeType":"ElementaryTypeName","src":"18884:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18883:20:164"},"returnParameters":{"id":83264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83273,"src":"18925:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18925:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18924:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83329,"nodeType":"FunctionDefinition","src":"19133:376:164","nodes":[],"body":{"id":83328,"nodeType":"Block","src":"19230:279:164","nodes":[],"statements":[{"assignments":[83285],"declarations":[{"constant":false,"id":83285,"mutability":"mutable","name":"router","nameLocation":"19256:6:164","nodeType":"VariableDeclaration","scope":83328,"src":"19240:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83284,"nodeType":"UserDefinedTypeName","pathNode":{"id":83283,"name":"Storage","nameLocations":["19240:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"19240:7:164"},"referencedDeclaration":77269,"src":"19240:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83288,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83286,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"19265:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19265:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19240:34:164"},{"assignments":[83293],"declarations":[{"constant":false,"id":83293,"mutability":"mutable","name":"res","nameLocation":"19302:3:164","nodeType":"VariableDeclaration","scope":83328,"src":"19285:20:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19285:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83292,"nodeType":"ArrayTypeName","src":"19285:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":83300,"initialValue":{"arguments":[{"expression":{"id":83297,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83277,"src":"19322:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19335:6:164","memberName":"length","nodeType":"MemberAccess","src":"19322:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19308:13:164","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":83294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19312:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83295,"nodeType":"ArrayTypeName","src":"19312:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":83299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19308:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19285:57:164"},{"body":{"id":83324,"nodeType":"Block","src":"19403:79:164","statements":[{"expression":{"id":83322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":83312,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83293,"src":"19417:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":83314,"indexExpression":{"id":83313,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83302,"src":"19421:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19417:6:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":83315,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83285,"src":"19426:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19433:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"19426:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19446:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86292,"src":"19426:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":83321,"indexExpression":{"baseExpression":{"id":83318,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83277,"src":"19455:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83320,"indexExpression":{"id":83319,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83302,"src":"19468:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19455:15:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19426:45:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"19417:54:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83323,"nodeType":"ExpressionStatement","src":"19417:54:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83302,"src":"19373:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83306,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83277,"src":"19377:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19390:6:164","memberName":"length","nodeType":"MemberAccess","src":"19377:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19373:23:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83325,"initializationExpression":{"assignments":[83302],"declarations":[{"constant":false,"id":83302,"mutability":"mutable","name":"i","nameLocation":"19366:1:164","nodeType":"VariableDeclaration","scope":83325,"src":"19358:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83301,"name":"uint256","nodeType":"ElementaryTypeName","src":"19358:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83304,"initialValue":{"hexValue":"30","id":83303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19370:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19358:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19398:3:164","subExpression":{"id":83309,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83302,"src":"19398:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83311,"nodeType":"ExpressionStatement","src":"19398:3:164"},"nodeType":"ForStatement","src":"19353:129:164"},{"expression":{"id":83326,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83293,"src":"19499:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":83282,"id":83327,"nodeType":"Return","src":"19492:10:164"}]},"baseFunctions":[77582],"documentation":{"id":83274,"nodeType":"StructuredDocumentation","src":"19007:121:164","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":"19142:15:164","parameters":{"id":83278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83277,"mutability":"mutable","name":"_programsIds","nameLocation":"19177:12:164","nodeType":"VariableDeclaration","scope":83329,"src":"19158:31:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83275,"name":"address","nodeType":"ElementaryTypeName","src":"19158:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83276,"nodeType":"ArrayTypeName","src":"19158:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"19157:33:164"},"returnParameters":{"id":83282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83329,"src":"19212:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19212:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83280,"nodeType":"ArrayTypeName","src":"19212:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"19211:18:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83341,"nodeType":"FunctionDefinition","src":"19626:115:164","nodes":[],"body":{"id":83340,"nodeType":"Block","src":"19681:60:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83335,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"19698:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19698:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19708:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"19698:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19721:13:164","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":86295,"src":"19698:36:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83334,"id":83339,"nodeType":"Return","src":"19691:43:164"}]},"baseFunctions":[77588],"documentation":{"id":83330,"nodeType":"StructuredDocumentation","src":"19515:106:164","text":" @dev Returns the count of programs.\n @return programsCount The count of programs."},"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"19635:13:164","parameters":{"id":83331,"nodeType":"ParameterList","parameters":[],"src":"19648:2:164"},"returnParameters":{"id":83334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83341,"src":"19672:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83332,"name":"uint256","nodeType":"ElementaryTypeName","src":"19672:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19671:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83353,"nodeType":"FunctionDefinition","src":"19878:127:164","nodes":[],"body":{"id":83352,"nodeType":"Block","src":"19939:66:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83347,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"19956:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19956:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19966:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"19956:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:19:164","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":86298,"src":"19956:42:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83346,"id":83351,"nodeType":"Return","src":"19949:49:164"}]},"baseFunctions":[77594],"documentation":{"id":83342,"nodeType":"StructuredDocumentation","src":"19747:126:164","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":"19887:19:164","parameters":{"id":83343,"nodeType":"ParameterList","parameters":[],"src":"19906:2:164"},"returnParameters":{"id":83346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83353,"src":"19930:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83344,"name":"uint256","nodeType":"ElementaryTypeName","src":"19930:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19929:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83365,"nodeType":"FunctionDefinition","src":"20202:147:164","nodes":[],"body":{"id":83364,"nodeType":"Block","src":"20274:75:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83359,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"20291:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20291:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20301:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"20291:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20314:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86304,"src":"20291:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83358,"id":83363,"nodeType":"Return","src":"20284:58:164"}]},"baseFunctions":[77600],"documentation":{"id":83354,"nodeType":"StructuredDocumentation","src":"20011:186:164","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":"20211:28:164","parameters":{"id":83355,"nodeType":"ParameterList","parameters":[],"src":"20239:2:164"},"returnParameters":{"id":83358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83365,"src":"20265:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83356,"name":"uint256","nodeType":"ElementaryTypeName","src":"20265:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20264:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83377,"nodeType":"FunctionDefinition","src":"20601:149:164","nodes":[],"body":{"id":83376,"nodeType":"Block","src":"20674:76:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83371,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"20691:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20691:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20701:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"20691:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20714:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86307,"src":"20691:52:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83370,"id":83375,"nodeType":"Return","src":"20684:59:164"}]},"baseFunctions":[77606],"documentation":{"id":83366,"nodeType":"StructuredDocumentation","src":"20355:241:164","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":"20610:29:164","parameters":{"id":83367,"nodeType":"ParameterList","parameters":[],"src":"20639:2:164"},"returnParameters":{"id":83370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83377,"src":"20665:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83368,"name":"uint256","nodeType":"ElementaryTypeName","src":"20665:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20664:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83389,"nodeType":"FunctionDefinition","src":"20883:121:164","nodes":[],"body":{"id":83388,"nodeType":"Block","src":"20942:62:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83383,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"20959:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20959:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20969:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"20959:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20982:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86310,"src":"20959:38:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83382,"id":83387,"nodeType":"Return","src":"20952:45:164"}]},"baseFunctions":[77612],"documentation":{"id":83378,"nodeType":"StructuredDocumentation","src":"20756:122:164","text":" @dev Returns the current protocol version.\n @return protocolVersion The current protocol version."},"functionSelector":"2ae9c600","implemented":true,"kind":"function","modifiers":[],"name":"protocolVersion","nameLocation":"20892:15:164","parameters":{"id":83379,"nodeType":"ParameterList","parameters":[],"src":"20907:2:164"},"returnParameters":{"id":83382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83389,"src":"20933:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83380,"name":"uint256","nodeType":"ElementaryTypeName","src":"20933:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20932:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83436,"nodeType":"FunctionDefinition","src":"21228:583:164","nodes":[],"body":{"id":83435,"nodeType":"Block","src":"21318:493:164","nodes":[],"statements":[{"assignments":[83399],"declarations":[{"constant":false,"id":83399,"mutability":"mutable","name":"currentProtocolVersion","nameLocation":"21336:22:164","nodeType":"VariableDeclaration","scope":83435,"src":"21328:30:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83398,"name":"uint256","nodeType":"ElementaryTypeName","src":"21328:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83404,"initialValue":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83400,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"21361:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21361:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21371:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"21361:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21384:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86310,"src":"21361:38:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21328:71:164"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"},"id":83409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83405,"name":"versionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83393,"src":"21413:11:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83406,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"21428:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21433:11:164","memberName":"VersionType","nodeType":"MemberAccess","referencedDeclaration":86428,"src":"21428:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VersionType_$86428_$","typeString":"type(enum Gear.VersionType)"}},"id":83408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21445:5:164","memberName":"Major","nodeType":"MemberAccess","referencedDeclaration":86425,"src":"21428:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"src":"21413:37:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"},"id":83419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83415,"name":"versionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83393,"src":"21549:11:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83416,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"21564:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21569:11:164","memberName":"VersionType","nodeType":"MemberAccess","referencedDeclaration":86428,"src":"21564:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VersionType_$86428_$","typeString":"type(enum Gear.VersionType)"}},"id":83418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21581:5:164","memberName":"Minor","nodeType":"MemberAccess","referencedDeclaration":86426,"src":"21564:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"src":"21549:37:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83432,"nodeType":"Block","src":"21717:88:164","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83428,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83399,"src":"21738:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":83429,"name":"PROTOCOL_VERSION_COMPONENT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82478,"src":"21763:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21738:56:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83397,"id":83431,"nodeType":"Return","src":"21731:63:164"}]},"id":83433,"nodeType":"IfStatement","src":"21545:260:164","trueBody":{"id":83427,"nodeType":"Block","src":"21588:123:164","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83420,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83399,"src":"21610:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":83421,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82468,"src":"21636:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21610:55:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21609:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":83424,"name":"PROTOCOL_VERSION_COMPONENT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82478,"src":"21669:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21609:91:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83397,"id":83426,"nodeType":"Return","src":"21602:98:164"}]}},"id":83434,"nodeType":"IfStatement","src":"21409:396:164","trueBody":{"id":83414,"nodeType":"Block","src":"21452:87:164","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83410,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83399,"src":"21473:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":83411,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82465,"src":"21499:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21473:55:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83397,"id":83413,"nodeType":"Return","src":"21466:62:164"}]}}]},"baseFunctions":[77621],"documentation":{"id":83390,"nodeType":"StructuredDocumentation","src":"21010:213:164","text":" @dev Returns the sub-protocol version for the given version type.\n @param versionType The type of version (major, minor, patch).\n @return subProtocolVersion The sub-protocol version."},"functionSelector":"ed018262","implemented":true,"kind":"function","modifiers":[],"name":"subProtocolVersion","nameLocation":"21237:18:164","parameters":{"id":83394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83393,"mutability":"mutable","name":"versionType","nameLocation":"21273:11:164","nodeType":"VariableDeclaration","scope":83436,"src":"21256:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"},"typeName":{"id":83392,"nodeType":"UserDefinedTypeName","pathNode":{"id":83391,"name":"Gear.VersionType","nameLocations":["21256:4:164","21261:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":86428,"src":"21256:16:164"},"referencedDeclaration":86428,"src":"21256:16:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"visibility":"internal"}],"src":"21255:30:164"},"returnParameters":{"id":83397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83396,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83436,"src":"21309:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83395,"name":"uint256","nodeType":"ElementaryTypeName","src":"21309:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21308:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83448,"nodeType":"FunctionDefinition","src":"21908:108:164","nodes":[],"body":{"id":83447,"nodeType":"Block","src":"21973:43:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83443,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"21990:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21990:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22000:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"21990:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":83442,"id":83446,"nodeType":"Return","src":"21983:26:164"}]},"baseFunctions":[77628],"documentation":{"id":83437,"nodeType":"StructuredDocumentation","src":"21817:86:164","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"21917:9:164","parameters":{"id":83438,"nodeType":"ParameterList","parameters":[],"src":"21926:2:164"},"returnParameters":{"id":83442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83448,"src":"21950:21:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":83440,"nodeType":"UserDefinedTypeName","pathNode":{"id":83439,"name":"Gear.Timelines","nameLocations":["21950:4:164","21955:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":86365,"src":"21950:14:164"},"referencedDeclaration":86365,"src":"21950:14:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"21949:23:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83458,"nodeType":"FunctionDefinition","src":"22190:104:164","nodes":[],"body":{"id":83457,"nodeType":"Block","src":"22250:44:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83454,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20830,"src":"22267:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":83455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22267:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83453,"id":83456,"nodeType":"Return","src":"22260:27:164"}]},"baseFunctions":[77634],"documentation":{"id":83449,"nodeType":"StructuredDocumentation","src":"22022:163:164","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":"22199:16:164","parameters":{"id":83450,"nodeType":"ParameterList","parameters":[],"src":"22215:2:164"},"returnParameters":{"id":83453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83458,"src":"22241:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22241:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22240:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":83474,"nodeType":"FunctionDefinition","src":"22458:116:164","nodes":[],"body":{"id":83473,"nodeType":"Block","src":"22515:59:164","nodes":[],"statements":[{"expression":{"id":83471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83466,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"22525:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22525:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22535:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"22525:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22549:6:164","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":86123,"src":"22525:30:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83470,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83461,"src":"22558:9:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22525:42:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83472,"nodeType":"ExpressionStatement","src":"22525:42:164"}]},"baseFunctions":[77640],"documentation":{"id":83459,"nodeType":"StructuredDocumentation","src":"22325:128:164","text":" @dev Sets the `Mirror` implementation address.\n @param newMirror The new mirror implementation address."},"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":83464,"kind":"modifierInvocation","modifierName":{"id":83463,"name":"onlyOwner","nameLocations":["22505:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"22505:9:164"},"nodeType":"ModifierInvocation","src":"22505:9:164"}],"name":"setMirror","nameLocation":"22467:9:164","parameters":{"id":83462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83461,"mutability":"mutable","name":"newMirror","nameLocation":"22485:9:164","nodeType":"VariableDeclaration","scope":83474,"src":"22477:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83460,"name":"address","nodeType":"ElementaryTypeName","src":"22477:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22476:19:164"},"returnParameters":{"id":83465,"nodeType":"ParameterList","parameters":[],"src":"22515:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83490,"nodeType":"FunctionDefinition","src":"22753:161:164","nodes":[],"body":{"id":83489,"nodeType":"Block","src":"22833:81:164","nodes":[],"statements":[{"expression":{"id":83487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83482,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"22843:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22853:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"22843:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22866:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86304,"src":"22843:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83486,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83477,"src":"22897:10:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22843:64:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83488,"nodeType":"ExpressionStatement","src":"22843:64:164"}]},"baseFunctions":[77646],"documentation":{"id":83475,"nodeType":"StructuredDocumentation","src":"22580:168:164","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":83480,"kind":"modifierInvocation","modifierName":{"id":83479,"name":"onlyOwner","nameLocations":["22823:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"22823:9:164"},"nodeType":"ModifierInvocation","src":"22823:9:164"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"22762:31:164","parameters":{"id":83478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83477,"mutability":"mutable","name":"newBaseFee","nameLocation":"22802:10:164","nodeType":"VariableDeclaration","scope":83490,"src":"22794:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83476,"name":"uint256","nodeType":"ElementaryTypeName","src":"22794:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22793:20:164"},"returnParameters":{"id":83481,"nodeType":"ParameterList","parameters":[],"src":"22833:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83506,"nodeType":"FunctionDefinition","src":"23148:165:164","nodes":[],"body":{"id":83505,"nodeType":"Block","src":"23230:83:164","nodes":[],"statements":[{"expression":{"id":83503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83498,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"23240:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23240:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23250:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"23240:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23263:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86307,"src":"23240:52:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83502,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83493,"src":"23295:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23240:66:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83504,"nodeType":"ExpressionStatement","src":"23240:66:164"}]},"baseFunctions":[77652],"documentation":{"id":83491,"nodeType":"StructuredDocumentation","src":"22920:223:164","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":83496,"kind":"modifierInvocation","modifierName":{"id":83495,"name":"onlyOwner","nameLocations":["23220:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"23220:9:164"},"nodeType":"ModifierInvocation","src":"23220:9:164"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"23157:32:164","parameters":{"id":83494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83493,"mutability":"mutable","name":"newExtraFee","nameLocation":"23198:11:164","nodeType":"VariableDeclaration","scope":83506,"src":"23190:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83492,"name":"uint256","nodeType":"ElementaryTypeName","src":"23190:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23189:21:164"},"returnParameters":{"id":83497,"nodeType":"ParameterList","parameters":[],"src":"23230:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83614,"nodeType":"FunctionDefinition","src":"23522:1196:164","nodes":[],"body":{"id":83613,"nodeType":"Block","src":"23601:1117:164","nodes":[],"statements":[{"assignments":[83516],"declarations":[{"constant":false,"id":83516,"mutability":"mutable","name":"currentProtocolVersion","nameLocation":"23619:22:164","nodeType":"VariableDeclaration","scope":83613,"src":"23611:30:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83515,"name":"uint256","nodeType":"ElementaryTypeName","src":"23611:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83521,"initialValue":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83517,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"23644:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23644:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23654:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"23644:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23667:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86310,"src":"23644:38:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23611:71:164"},{"assignments":[83523],"declarations":[{"constant":false,"id":83523,"mutability":"mutable","name":"majorVersion","nameLocation":"23700:12:164","nodeType":"VariableDeclaration","scope":83613,"src":"23692:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83522,"name":"uint256","nodeType":"ElementaryTypeName","src":"23692:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83527,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83524,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83516,"src":"23715:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":83525,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82465,"src":"23741:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23715:55:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23692:78:164"},{"assignments":[83529],"declarations":[{"constant":false,"id":83529,"mutability":"mutable","name":"minorVersion","nameLocation":"23788:12:164","nodeType":"VariableDeclaration","scope":83613,"src":"23780:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83528,"name":"uint256","nodeType":"ElementaryTypeName","src":"23780:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83536,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83530,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83516,"src":"23816:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":83531,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82468,"src":"23842:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23816:55:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83533,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23815:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":83534,"name":"PROTOCOL_VERSION_COMPONENT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82478,"src":"23875:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23815:91:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23780:126:164"},{"assignments":[83538],"declarations":[{"constant":false,"id":83538,"mutability":"mutable","name":"patchVersion","nameLocation":"23924:12:164","nodeType":"VariableDeclaration","scope":83613,"src":"23916:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83537,"name":"uint256","nodeType":"ElementaryTypeName","src":"23916:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83542,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83539,"name":"currentProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83516,"src":"23939:22:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":83540,"name":"PROTOCOL_VERSION_COMPONENT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82478,"src":"23964:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23939:56:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23916:79:164"},{"assignments":[83544],"declarations":[{"constant":false,"id":83544,"mutability":"mutable","name":"newProtocolVersion","nameLocation":"24014:18:164","nodeType":"VariableDeclaration","scope":83613,"src":"24006:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83543,"name":"uint256","nodeType":"ElementaryTypeName","src":"24006:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83545,"nodeType":"VariableDeclarationStatement","src":"24006:26:164"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"},"id":83550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83546,"name":"_versionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83510,"src":"24046:12:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83547,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"24062:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24067:11:164","memberName":"VersionType","nodeType":"MemberAccess","referencedDeclaration":86428,"src":"24062:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VersionType_$86428_$","typeString":"type(enum Gear.VersionType)"}},"id":83549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24079:5:164","memberName":"Major","nodeType":"MemberAccess","referencedDeclaration":86425,"src":"24062:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"src":"24046:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"},"id":83565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83561,"name":"_versionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83510,"src":"24193:12:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83562,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"24209:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24214:11:164","memberName":"VersionType","nodeType":"MemberAccess","referencedDeclaration":86428,"src":"24209:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VersionType_$86428_$","typeString":"type(enum Gear.VersionType)"}},"id":83564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24226:5:164","memberName":"Minor","nodeType":"MemberAccess","referencedDeclaration":86426,"src":"24209:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"src":"24193:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83599,"nodeType":"Block","src":"24404:180:164","statements":[{"expression":{"id":83597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83582,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83544,"src":"24418:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83583,"name":"majorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"24440:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83584,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82465,"src":"24456:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24440:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83586,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24439:47:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83587,"name":"minorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83529,"src":"24506:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83588,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82468,"src":"24522:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24506:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83590,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24505:47:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24439:113:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83592,"name":"patchVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83538,"src":"24556:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24571:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24556:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24555:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24439:134:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24418:155:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83598,"nodeType":"ExpressionStatement","src":"24418:155:164"}]},"id":83600,"nodeType":"IfStatement","src":"24189:395:164","trueBody":{"id":83581,"nodeType":"Block","src":"24233:165:164","statements":[{"expression":{"id":83579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83566,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83544,"src":"24247:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83567,"name":"majorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"24285:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83568,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82465,"src":"24301:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24285:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83570,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24284:47:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83571,"name":"minorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83529,"src":"24336:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24351:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24336:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83574,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24335:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83575,"name":"MINOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82468,"src":"24357:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24335:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83577,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24334:53:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24284:103:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24247:140:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83580,"nodeType":"ExpressionStatement","src":"24247:140:164"}]}},"id":83601,"nodeType":"IfStatement","src":"24042:542:164","trueBody":{"id":83560,"nodeType":"Block","src":"24086:97:164","statements":[{"expression":{"id":83558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83551,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83544,"src":"24100:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83552,"name":"majorVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"24122:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24137:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24122:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83555,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24121:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":83556,"name":"MAJOR_PROTOCOL_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82465,"src":"24143:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24121:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24100:72:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83559,"nodeType":"ExpressionStatement","src":"24100:72:164"}]}},{"expression":{"id":83607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83602,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"24594:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24594:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24604:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"24594:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24617:15:164","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":86310,"src":"24594:38:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83606,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83544,"src":"24635:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24594:59:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83608,"nodeType":"ExpressionStatement","src":"24594:59:164"},{"eventCall":{"arguments":[{"id":83610,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83544,"src":"24692:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83609,"name":"ProtocolVersionChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77289,"src":"24669:22:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":83611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24669:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83612,"nodeType":"EmitStatement","src":"24664:47:164"}]},"baseFunctions":[77659],"documentation":{"id":83507,"nodeType":"StructuredDocumentation","src":"23319:198:164","text":" @dev Bumps the version of the protocol, used by nodes.\n @param _versionType The type of version bump (major, minor, patch).\n Emits `ProtocolVersionChanged` event."},"functionSelector":"5734c0e1","implemented":true,"kind":"function","modifiers":[{"id":83513,"kind":"modifierInvocation","modifierName":{"id":83512,"name":"onlyOwner","nameLocations":["23591:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"23591:9:164"},"nodeType":"ModifierInvocation","src":"23591:9:164"}],"name":"bumpProtocolVersion","nameLocation":"23531:19:164","parameters":{"id":83511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83510,"mutability":"mutable","name":"_versionType","nameLocation":"23568:12:164","nodeType":"VariableDeclaration","scope":83614,"src":"23551:29:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"},"typeName":{"id":83509,"nodeType":"UserDefinedTypeName","pathNode":{"id":83508,"name":"Gear.VersionType","nameLocations":["23551:4:164","23556:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":86428,"src":"23551:16:164"},"referencedDeclaration":86428,"src":"23551:16:164","typeDescriptions":{"typeIdentifier":"t_enum$_VersionType_$86428","typeString":"enum Gear.VersionType"}},"visibility":"internal"}],"src":"23550:31:164"},"returnParameters":{"id":83514,"nodeType":"ParameterList","parameters":[],"src":"23601:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83624,"nodeType":"FunctionDefinition","src":"24773:59:164","nodes":[],"body":{"id":83623,"nodeType":"Block","src":"24807:25:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83620,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20712,"src":"24817:6:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":83621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24817:8:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83622,"nodeType":"ExpressionStatement","src":"24817:8:164"}]},"baseFunctions":[77663],"documentation":{"id":83615,"nodeType":"StructuredDocumentation","src":"24724:44:164","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":83618,"kind":"modifierInvocation","modifierName":{"id":83617,"name":"onlyOwner","nameLocations":["24797:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"24797:9:164"},"nodeType":"ModifierInvocation","src":"24797:9:164"}],"name":"pause","nameLocation":"24782:5:164","parameters":{"id":83616,"nodeType":"ParameterList","parameters":[],"src":"24787:2:164"},"returnParameters":{"id":83619,"nodeType":"ParameterList","parameters":[],"src":"24807:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":83634,"nodeType":"FunctionDefinition","src":"24889:63:164","nodes":[],"body":{"id":83633,"nodeType":"Block","src":"24925:27:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83630,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20736,"src":"24935:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":83631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24935:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83632,"nodeType":"ExpressionStatement","src":"24935:10:164"}]},"baseFunctions":[77667],"documentation":{"id":83625,"nodeType":"StructuredDocumentation","src":"24838:46:164","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":83628,"kind":"modifierInvocation","modifierName":{"id":83627,"name":"onlyOwner","nameLocations":["24915:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"24915:9:164"},"nodeType":"ModifierInvocation","src":"24915:9:164"}],"name":"unpause","nameLocation":"24898:7:164","parameters":{"id":83626,"nodeType":"ParameterList","parameters":[],"src":"24905:2:164"},"returnParameters":{"id":83629,"nodeType":"ParameterList","parameters":[],"src":"24925:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":83689,"nodeType":"FunctionDefinition","src":"25053:385:164","nodes":[],"body":{"id":83688,"nodeType":"Block","src":"25091:347:164","nodes":[],"statements":[{"assignments":[83640],"declarations":[{"constant":false,"id":83640,"mutability":"mutable","name":"router","nameLocation":"25117:6:164","nodeType":"VariableDeclaration","scope":83688,"src":"25101:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83639,"nodeType":"UserDefinedTypeName","pathNode":{"id":83638,"name":"Storage","nameLocations":["25101:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"25101:7:164"},"referencedDeclaration":77269,"src":"25101:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83643,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83641,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"25126:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25101:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83645,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83640,"src":"25154:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25161:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"25154:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25174:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"25154:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25190:1:164","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":83649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25182:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25182:7:164","typeDescriptions":{}}},"id":83651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25182:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25154:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83653,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77342,"src":"25194:21:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83644,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25146:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:72:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83656,"nodeType":"ExpressionStatement","src":"25146:72:164"},{"assignments":[83658],"declarations":[{"constant":false,"id":83658,"mutability":"mutable","name":"genesisHash","nameLocation":"25237:11:164","nodeType":"VariableDeclaration","scope":83688,"src":"25229:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25229:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83664,"initialValue":{"arguments":[{"expression":{"expression":{"id":83660,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83640,"src":"25261:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25268:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"25261:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25281:6:164","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":86256,"src":"25261:26:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":83659,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"25251:9:164","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25251:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25229:59:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83666,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83658,"src":"25307:11:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25330:1:164","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":83668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25322:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25322:7:164","typeDescriptions":{}}},"id":83670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25322:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25307:25:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83672,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77345,"src":"25334:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25334:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25299:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25299:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83675,"nodeType":"ExpressionStatement","src":"25299:57:164"},{"expression":{"id":83686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":83676,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83640,"src":"25367:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25374:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"25367:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25387:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"25367:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":83682,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83640,"src":"25404:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25411:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"25404:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25424:6:164","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":86256,"src":"25404:26:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":83681,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"25394:9:164","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25394:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25367:64:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83687,"nodeType":"ExpressionStatement","src":"25367:64:164"}]},"baseFunctions":[77671],"documentation":{"id":83635,"nodeType":"StructuredDocumentation","src":"24977:71:164","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"25062:17:164","parameters":{"id":83636,"nodeType":"ParameterList","parameters":[],"src":"25079:2:164"},"returnParameters":{"id":83637,"nodeType":"ParameterList","parameters":[],"src":"25091:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83818,"nodeType":"FunctionDefinition","src":"26300:986:164","nodes":[],"body":{"id":83817,"nodeType":"Block","src":"26444:842:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":83707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26471:1:164","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":83706,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26462:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26462:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":83709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26477:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26462:16:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83711,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77348,"src":"26480:12:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26480:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83705,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26454:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26454:41:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83714,"nodeType":"ExpressionStatement","src":"26454:41:164"},{"assignments":[83717],"declarations":[{"constant":false,"id":83717,"mutability":"mutable","name":"router","nameLocation":"26522:6:164","nodeType":"VariableDeclaration","scope":83817,"src":"26506:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83716,"nodeType":"UserDefinedTypeName","pathNode":{"id":83715,"name":"Storage","nameLocations":["26506:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"26506:7:164"},"referencedDeclaration":77269,"src":"26506:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83720,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83718,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"26531:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26531:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"26506:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83722,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83717,"src":"26558:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26565:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"26558:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26578:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"26558:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26594:1:164","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":83726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26586:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83725,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26586:7:164","typeDescriptions":{}}},"id":83728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26586:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26558:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83730,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"26598:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26598:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83721,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26550:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26550:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83733,"nodeType":"ExpressionStatement","src":"26550:82:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"},"id":83743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83735,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83717,"src":"26651:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26658:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"26651:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26671:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"26651:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83739,"indexExpression":{"id":83738,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83692,"src":"26677:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26651:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83740,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"26689:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26694:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86239,"src":"26689:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86239_$","typeString":"type(enum Gear.CodeState)"}},"id":83742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26704:7:164","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":86234,"src":"26689:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"src":"26651:60:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83744,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77354,"src":"26713:34:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26713:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83734,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26643:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26643:107:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83747,"nodeType":"ExpressionStatement","src":"26643:107:164"},{"assignments":[83750],"declarations":[{"constant":false,"id":83750,"mutability":"mutable","name":"_wrappedVara","nameLocation":"26774:12:164","nodeType":"VariableDeclaration","scope":83817,"src":"26761:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"},"typeName":{"id":83749,"nodeType":"UserDefinedTypeName","pathNode":{"id":83748,"name":"IWrappedVara","nameLocations":["26761:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":77812,"src":"26761:12:164"},"referencedDeclaration":77812,"src":"26761:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":83756,"initialValue":{"arguments":[{"expression":{"expression":{"id":83752,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83717,"src":"26802:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26809:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"26802:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26823:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":86126,"src":"26802:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83751,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"26789:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77812_$","typeString":"type(contract IWrappedVara)"}},"id":83755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26789:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"26761:74:164"},{"assignments":[83758],"declarations":[{"constant":false,"id":83758,"mutability":"mutable","name":"baseFee","nameLocation":"26854:7:164","nodeType":"VariableDeclaration","scope":83817,"src":"26846:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83757,"name":"uint256","nodeType":"ElementaryTypeName","src":"26846:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83762,"initialValue":{"expression":{"expression":{"id":83759,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83717,"src":"26864:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26871:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"26864:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26884:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86304,"src":"26864:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26846:66:164"},{"clauses":[{"block":{"id":83777,"nodeType":"Block","src":"27005:2:164","statements":[]},"errorName":"","id":83778,"nodeType":"TryCatchClause","src":"27005:2:164"},{"block":{"id":83779,"nodeType":"Block","src":"27014:2:164","statements":[]},"errorName":"","id":83780,"nodeType":"TryCatchClause","src":"27008:8:164"}],"externalCall":{"arguments":[{"expression":{"id":83765,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26946:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26950:6:164","memberName":"sender","nodeType":"MemberAccess","src":"26946:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83769,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"26966:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":83768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26958:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83767,"name":"address","nodeType":"ElementaryTypeName","src":"26958:7:164","typeDescriptions":{}}},"id":83770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26958:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83771,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83758,"src":"26973:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83772,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83694,"src":"26982:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83773,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83696,"src":"26993:2:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83774,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83698,"src":"26997:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83775,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83700,"src":"27001:2:164","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":83763,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83750,"src":"26926:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":83764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26939:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"26926:19:164","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":83776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26926:78:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83781,"nodeType":"TryStatement","src":"26922:94:164"},{"assignments":[83783],"declarations":[{"constant":false,"id":83783,"mutability":"mutable","name":"success","nameLocation":"27030:7:164","nodeType":"VariableDeclaration","scope":83817,"src":"27025:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83782,"name":"bool","nodeType":"ElementaryTypeName","src":"27025:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83794,"initialValue":{"arguments":[{"expression":{"id":83786,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27066:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27070:6:164","memberName":"sender","nodeType":"MemberAccess","src":"27066:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83790,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27086:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":83789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27078:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83788,"name":"address","nodeType":"ElementaryTypeName","src":"27078:7:164","typeDescriptions":{}}},"id":83791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27078:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83792,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83758,"src":"27093:7:164","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":83784,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83750,"src":"27040:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":83785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27053:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"27040:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":83793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27040:61:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27025:76:164"},{"expression":{"arguments":[{"id":83796,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83783,"src":"27119:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83797,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"27128:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27128:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27111:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27111:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83800,"nodeType":"ExpressionStatement","src":"27111:38:164"},{"expression":{"id":83811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":83801,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83717,"src":"27160:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27167:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"27160:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27180:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"27160:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83807,"indexExpression":{"id":83804,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83692,"src":"27186:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27160:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":83808,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"27197:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27202:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86239,"src":"27197:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86239_$","typeString":"type(enum Gear.CodeState)"}},"id":83810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27212:19:164","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":86236,"src":"27197:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"src":"27160:71:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"id":83812,"nodeType":"ExpressionStatement","src":"27160:71:164"},{"eventCall":{"arguments":[{"id":83814,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83692,"src":"27271:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83813,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77301,"src":"27247:23:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27247:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83816,"nodeType":"EmitStatement","src":"27242:37:164"}]},"baseFunctions":[77685],"documentation":{"id":83690,"nodeType":"StructuredDocumentation","src":"25444:851:164","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":83703,"kind":"modifierInvocation","modifierName":{"id":83702,"name":"whenNotPaused","nameLocations":["26426:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"26426:13:164"},"nodeType":"ModifierInvocation","src":"26426:13:164"}],"name":"requestCodeValidation","nameLocation":"26309:21:164","parameters":{"id":83701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83692,"mutability":"mutable","name":"_codeId","nameLocation":"26339:7:164","nodeType":"VariableDeclaration","scope":83818,"src":"26331:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26331:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83694,"mutability":"mutable","name":"_deadline","nameLocation":"26356:9:164","nodeType":"VariableDeclaration","scope":83818,"src":"26348:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83693,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83696,"mutability":"mutable","name":"_v","nameLocation":"26373:2:164","nodeType":"VariableDeclaration","scope":83818,"src":"26367:8:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83695,"name":"uint8","nodeType":"ElementaryTypeName","src":"26367:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83698,"mutability":"mutable","name":"_r","nameLocation":"26385:2:164","nodeType":"VariableDeclaration","scope":83818,"src":"26377:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26377:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83700,"mutability":"mutable","name":"_s","nameLocation":"26397:2:164","nodeType":"VariableDeclaration","scope":83818,"src":"26389:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26389:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"26330:70:164"},"returnParameters":{"id":83704,"nodeType":"ParameterList","parameters":[],"src":"26444:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84084,"nodeType":"FunctionDefinition","src":"28793:2418:164","nodes":[],"body":{"id":84083,"nodeType":"Block","src":"29103:2108:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":83847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29130:1:164","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":83846,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"29121:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29121:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":83849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29136:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29121:16:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83851,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77348,"src":"29139:12:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29139:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83845,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29113:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29113:41:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83854,"nodeType":"ExpressionStatement","src":"29113:41:164"},{"assignments":[83857],"declarations":[{"constant":false,"id":83857,"mutability":"mutable","name":"router","nameLocation":"29181:6:164","nodeType":"VariableDeclaration","scope":84083,"src":"29165:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83856,"nodeType":"UserDefinedTypeName","pathNode":{"id":83855,"name":"Storage","nameLocations":["29165:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"29165:7:164"},"referencedDeclaration":77269,"src":"29165:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83860,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83858,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"29190:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29190:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"29165:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83862,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83857,"src":"29217:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29224:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"29217:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29237:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"29217:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29253:1:164","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":83866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29245:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29245:7:164","typeDescriptions":{}}},"id":83868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29245:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29217:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83870,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"29257:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29257:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83861,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29209:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29209:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83873,"nodeType":"ExpressionStatement","src":"29209:82:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"},"id":83883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83875,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83857,"src":"29310:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29317:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"29310:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29330:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"29310:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83879,"indexExpression":{"id":83878,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83823,"src":"29336:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29310:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83880,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"29348:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":83881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29353:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86239,"src":"29348:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86239_$","typeString":"type(enum Gear.CodeState)"}},"id":83882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29363:7:164","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":86234,"src":"29348:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"src":"29310:60:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83884,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77354,"src":"29372:34:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29372:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83874,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29302:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29302:107:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83887,"nodeType":"ExpressionStatement","src":"29302:107:164"},{"assignments":[83889],"declarations":[{"constant":false,"id":83889,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"29428:17:164","nodeType":"VariableDeclaration","scope":84083,"src":"29420:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83888,"name":"uint256","nodeType":"ElementaryTypeName","src":"29420:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83891,"initialValue":{"hexValue":"30","id":83890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29448:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29420:29:164"},{"body":{"id":83907,"nodeType":"Block","src":"29472:142:164","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":83894,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83889,"src":"29499:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83893,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"29490:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29490:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29529:1:164","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":83897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29521:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83896,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29521:7:164","typeDescriptions":{}}},"id":83899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29521:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29490:41:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83903,"nodeType":"IfStatement","src":"29486:85:164","trueBody":{"id":83902,"nodeType":"Block","src":"29533:38:164","statements":[{"id":83901,"nodeType":"Break","src":"29551:5:164"}]}},{"expression":{"id":83905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29584:19:164","subExpression":{"id":83904,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83889,"src":"29584:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83906,"nodeType":"ExpressionStatement","src":"29584:19:164"}]},"condition":{"hexValue":"74727565","id":83892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29466:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":83908,"nodeType":"WhileStatement","src":"29459:155:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83910,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83826,"src":"29632:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29644:6:164","memberName":"length","nodeType":"MemberAccess","src":"29632:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83912,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83889,"src":"29654:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29632:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":83915,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83826,"src":"29697:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29709:6:164","memberName":"length","nodeType":"MemberAccess","src":"29697:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83917,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83889,"src":"29717:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83914,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77361,"src":"29673:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":83918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29673:62:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83909,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29624:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29624:112:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83920,"nodeType":"ExpressionStatement","src":"29624:112:164"},{"body":{"id":83953,"nodeType":"Block","src":"29796:174:164","statements":[{"assignments":[83933],"declarations":[{"constant":false,"id":83933,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"29818:16:164","nodeType":"VariableDeclaration","scope":83953,"src":"29810:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29810:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83937,"initialValue":{"arguments":[{"id":83935,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83922,"src":"29846:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83934,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"29837:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29837:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"29810:38:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":83939,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83826,"src":"29870:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83941,"indexExpression":{"id":83940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83922,"src":"29882:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29870:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83942,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83933,"src":"29888:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29870:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":83945,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83922,"src":"29922:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":83946,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83826,"src":"29925:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83948,"indexExpression":{"id":83947,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83922,"src":"29937:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29925:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83949,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83933,"src":"29941:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83944,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77370,"src":"29906:15:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_error_$","typeString":"function (uint256,bytes32,bytes32) pure returns (error)"}},"id":83950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29906:52:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83938,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29862:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29862:97:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83952,"nodeType":"ExpressionStatement","src":"29862:97:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83925,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83922,"src":"29767:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83926,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83826,"src":"29771:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29783:6:164","memberName":"length","nodeType":"MemberAccess","src":"29771:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29767:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83954,"initializationExpression":{"assignments":[83922],"declarations":[{"constant":false,"id":83922,"mutability":"mutable","name":"i","nameLocation":"29760:1:164","nodeType":"VariableDeclaration","scope":83954,"src":"29752:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83921,"name":"uint256","nodeType":"ElementaryTypeName","src":"29752:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83924,"initialValue":{"hexValue":"30","id":83923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29764:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29752:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29791:3:164","subExpression":{"id":83929,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83922,"src":"29791:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83931,"nodeType":"ExpressionStatement","src":"29791:3:164"},"nodeType":"ForStatement","src":"29747:223:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83956,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30046:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30052:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"30046:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83958,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83828,"src":"30065:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30046:28:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":83961,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83828,"src":"30093:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83960,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77375,"src":"30076:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":83962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30076:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83955,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30038:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30038:66:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83964,"nodeType":"ExpressionStatement","src":"30038:66:164"},{"assignments":[83966],"declarations":[{"constant":false,"id":83966,"mutability":"mutable","name":"structHash","nameLocation":"30123:10:164","nodeType":"VariableDeclaration","scope":84083,"src":"30115:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83965,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30115:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83985,"initialValue":{"arguments":[{"arguments":[{"id":83970,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82453,"src":"30187:42:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83971,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83821,"src":"30247:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83972,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83823,"src":"30275:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":83976,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83826,"src":"30327:11:164","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":83974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30310:3:164","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30314:12:164","memberName":"encodePacked","nodeType":"MemberAccess","src":"30310:16:164","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30310:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83973,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"30300:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30300:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":83980,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83821,"src":"30368:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83979,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20551,"src":"30358:9:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":83981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30358:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83982,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83828,"src":"30397:9:164","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":83968,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30159:3:164","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30163:6:164","memberName":"encode","nodeType":"MemberAccess","src":"30159:10:164","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30159:261:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83967,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"30136:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30136:294:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"30115:315:164"},{"assignments":[83987],"declarations":[{"constant":false,"id":83987,"mutability":"mutable","name":"hash","nameLocation":"30449:4:164","nodeType":"VariableDeclaration","scope":84083,"src":"30441:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30441:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83991,"initialValue":{"arguments":[{"id":83989,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83966,"src":"30473:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83988,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20869,"src":"30456:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":83990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30456:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"30441:43:164"},{"assignments":[83993],"declarations":[{"constant":false,"id":83993,"mutability":"mutable","name":"signer","nameLocation":"30503:6:164","nodeType":"VariableDeclaration","scope":84083,"src":"30495:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83992,"name":"address","nodeType":"ElementaryTypeName","src":"30495:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84001,"initialValue":{"arguments":[{"id":83996,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83987,"src":"30526:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83997,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83830,"src":"30532:3:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83998,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83832,"src":"30537:3:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83999,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83834,"src":"30542:3:164","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":83994,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"30512:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$9016_$","typeString":"type(library ECDSA)"}},"id":83995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30518:7:164","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":8938,"src":"30512:13:164","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":84000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30512:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"30495:51:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":84005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84003,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83993,"src":"30564:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":84004,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83821,"src":"30574:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30564:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":84007,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83993,"src":"30600:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84008,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83821,"src":"30608:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":84006,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77382,"src":"30586:13:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":84009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30586:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84002,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30556:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30556:64:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84011,"nodeType":"ExpressionStatement","src":"30556:64:164"},{"assignments":[84014],"declarations":[{"constant":false,"id":84014,"mutability":"mutable","name":"_wrappedVara","nameLocation":"30644:12:164","nodeType":"VariableDeclaration","scope":84083,"src":"30631:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"},"typeName":{"id":84013,"nodeType":"UserDefinedTypeName","pathNode":{"id":84012,"name":"IWrappedVara","nameLocations":["30631:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":77812,"src":"30631:12:164"},"referencedDeclaration":77812,"src":"30631:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":84020,"initialValue":{"arguments":[{"expression":{"expression":{"id":84016,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83857,"src":"30672:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30679:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"30672:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30693:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":86126,"src":"30672:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84015,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"30659:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77812_$","typeString":"type(contract IWrappedVara)"}},"id":84019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30659:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"30631:74:164"},{"assignments":[84022],"declarations":[{"constant":false,"id":84022,"mutability":"mutable","name":"fee","nameLocation":"30724:3:164","nodeType":"VariableDeclaration","scope":84083,"src":"30716:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84021,"name":"uint256","nodeType":"ElementaryTypeName","src":"30716:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84030,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84023,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83857,"src":"30742:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30749:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"30742:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30762:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":86304,"src":"30742:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":84026,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83857,"src":"30793:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30800:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"30793:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30813:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":86307,"src":"30793:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30742:100:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30716:126:164"},{"clauses":[{"block":{"id":84044,"nodeType":"Block","src":"30934:2:164","statements":[]},"errorName":"","id":84045,"nodeType":"TryCatchClause","src":"30934:2:164"},{"block":{"id":84046,"nodeType":"Block","src":"30943:2:164","statements":[]},"errorName":"","id":84047,"nodeType":"TryCatchClause","src":"30937:8:164"}],"externalCall":{"arguments":[{"id":84033,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83821,"src":"30876:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84036,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"30896:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":84035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30888:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84034,"name":"address","nodeType":"ElementaryTypeName","src":"30888:7:164","typeDescriptions":{}}},"id":84037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30888:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84038,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84022,"src":"30903:3:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84039,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83828,"src":"30908:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84040,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83836,"src":"30919:3:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":84041,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83838,"src":"30924:3:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84042,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83840,"src":"30929:3:164","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":84031,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84014,"src":"30856:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":84032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30869:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"30856:19:164","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":84043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30856:77:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84048,"nodeType":"TryStatement","src":"30852:93:164"},{"assignments":[84050],"declarations":[{"constant":false,"id":84050,"mutability":"mutable","name":"success","nameLocation":"30959:7:164","nodeType":"VariableDeclaration","scope":84083,"src":"30954:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84049,"name":"bool","nodeType":"ElementaryTypeName","src":"30954:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84060,"initialValue":{"arguments":[{"id":84053,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83821,"src":"30995:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84056,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31015:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":84055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31007:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84054,"name":"address","nodeType":"ElementaryTypeName","src":"31007:7:164","typeDescriptions":{}}},"id":84057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31007:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84058,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84022,"src":"31022:3:164","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":84051,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84014,"src":"30969:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":84052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30982:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"30969:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":84059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30969:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30954:72:164"},{"expression":{"arguments":[{"id":84062,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84050,"src":"31044:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84063,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"31053:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31053:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31036:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31036:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84066,"nodeType":"ExpressionStatement","src":"31036:38:164"},{"expression":{"id":84077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":84067,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83857,"src":"31085:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31092:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"31085:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31105:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"31085:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":84073,"indexExpression":{"id":84070,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83823,"src":"31111:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31085:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":84074,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"31122:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31127:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86239,"src":"31122:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86239_$","typeString":"type(enum Gear.CodeState)"}},"id":84076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31137:19:164","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":86236,"src":"31122:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"src":"31085:71:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"id":84078,"nodeType":"ExpressionStatement","src":"31085:71:164"},{"eventCall":{"arguments":[{"id":84080,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83823,"src":"31196:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84079,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77301,"src":"31172:23:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":84081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31172:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84082,"nodeType":"EmitStatement","src":"31167:37:164"}]},"baseFunctions":[77710],"documentation":{"id":83819,"nodeType":"StructuredDocumentation","src":"27292:1496:164","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":83843,"kind":"modifierInvocation","modifierName":{"id":83842,"name":"whenNotPaused","nameLocations":["29089:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"29089:13:164"},"nodeType":"ModifierInvocation","src":"29089:13:164"}],"name":"requestCodeValidationOnBehalf","nameLocation":"28802:29:164","parameters":{"id":83841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83821,"mutability":"mutable","name":"_requester","nameLocation":"28849:10:164","nodeType":"VariableDeclaration","scope":84084,"src":"28841:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83820,"name":"address","nodeType":"ElementaryTypeName","src":"28841:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83823,"mutability":"mutable","name":"_codeId","nameLocation":"28877:7:164","nodeType":"VariableDeclaration","scope":84084,"src":"28869:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28869:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83826,"mutability":"mutable","name":"_blobHashes","nameLocation":"28913:11:164","nodeType":"VariableDeclaration","scope":84084,"src":"28894:30:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83824,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28894:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83825,"nodeType":"ArrayTypeName","src":"28894:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":83828,"mutability":"mutable","name":"_deadline","nameLocation":"28942:9:164","nodeType":"VariableDeclaration","scope":84084,"src":"28934:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83827,"name":"uint256","nodeType":"ElementaryTypeName","src":"28934:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83830,"mutability":"mutable","name":"_v1","nameLocation":"28967:3:164","nodeType":"VariableDeclaration","scope":84084,"src":"28961:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83829,"name":"uint8","nodeType":"ElementaryTypeName","src":"28961:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83832,"mutability":"mutable","name":"_r1","nameLocation":"28988:3:164","nodeType":"VariableDeclaration","scope":84084,"src":"28980:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28980:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83834,"mutability":"mutable","name":"_s1","nameLocation":"29009:3:164","nodeType":"VariableDeclaration","scope":84084,"src":"29001:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83833,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29001:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83836,"mutability":"mutable","name":"_v2","nameLocation":"29028:3:164","nodeType":"VariableDeclaration","scope":84084,"src":"29022:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83835,"name":"uint8","nodeType":"ElementaryTypeName","src":"29022:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83838,"mutability":"mutable","name":"_r2","nameLocation":"29049:3:164","nodeType":"VariableDeclaration","scope":84084,"src":"29041:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29041:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83840,"mutability":"mutable","name":"_s2","nameLocation":"29070:3:164","nodeType":"VariableDeclaration","scope":84084,"src":"29062:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29062:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"28831:248:164"},"returnParameters":{"id":83844,"nodeType":"ParameterList","parameters":[],"src":"29103:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84129,"nodeType":"FunctionDefinition","src":"32291:396:164","nodes":[],"body":{"id":84128,"nodeType":"Block","src":"32445:242:164","nodes":[],"statements":[{"assignments":[84099,null],"declarations":[{"constant":false,"id":84099,"mutability":"mutable","name":"mirror","nameLocation":"32464:6:164","nodeType":"VariableDeclaration","scope":84128,"src":"32456:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84098,"name":"address","nodeType":"ElementaryTypeName","src":"32456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":84105,"initialValue":{"arguments":[{"id":84101,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84087,"src":"32490:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84102,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84089,"src":"32499:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":84103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32506:4:164","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":84100,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84656,"src":"32475:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":84104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32475:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"32455:56:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":84115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84110,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84091,"src":"32562:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":84113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32594:1:164","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":84112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32586:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84111,"name":"address","nodeType":"ElementaryTypeName","src":"32586:7:164","typeDescriptions":{}}},"id":84114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32586:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"32562:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84118,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84091,"src":"32612:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"32562:70:164","trueExpression":{"expression":{"id":84116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"32599:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32603:6:164","memberName":"sender","nodeType":"MemberAccess","src":"32599:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84120,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82948,"src":"32634:10:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":84121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32634:12:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":84122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32648:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":84123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32654:1:164","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":84107,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"32530:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84106,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"32522:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77171_$","typeString":"type(contract IMirror)"}},"id":84108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32522:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":84109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32551:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":77161,"src":"32522:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":84124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32522:134:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84125,"nodeType":"ExpressionStatement","src":"32522:134:164"},{"expression":{"id":84126,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"32674:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":84097,"id":84127,"nodeType":"Return","src":"32667:13:164"}]},"baseFunctions":[77722],"documentation":{"id":84085,"nodeType":"StructuredDocumentation","src":"31217:1069:164","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":84094,"kind":"modifierInvocation","modifierName":{"id":84093,"name":"whenNotPaused","nameLocations":["32401:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"32401:13:164"},"nodeType":"ModifierInvocation","src":"32401:13:164"}],"name":"createProgram","nameLocation":"32300:13:164","parameters":{"id":84092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84087,"mutability":"mutable","name":"_codeId","nameLocation":"32322:7:164","nodeType":"VariableDeclaration","scope":84129,"src":"32314:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32314:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84089,"mutability":"mutable","name":"_salt","nameLocation":"32339:5:164","nodeType":"VariableDeclaration","scope":84129,"src":"32331:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32331:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84091,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"32354:20:164","nodeType":"VariableDeclaration","scope":84129,"src":"32346:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84090,"name":"address","nodeType":"ElementaryTypeName","src":"32346:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32313:62:164"},"returnParameters":{"id":84097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84129,"src":"32432:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84095,"name":"address","nodeType":"ElementaryTypeName","src":"32432:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32431:9:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84234,"nodeType":"FunctionDefinition","src":"34160:1031:164","nodes":[],"body":{"id":84233,"nodeType":"Block","src":"34465:726:164","nodes":[],"statements":[{"assignments":[84154,84157],"declarations":[{"constant":false,"id":84154,"mutability":"mutable","name":"mirror","nameLocation":"34484:6:164","nodeType":"VariableDeclaration","scope":84233,"src":"34476:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84153,"name":"address","nodeType":"ElementaryTypeName","src":"34476:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84157,"mutability":"mutable","name":"router","nameLocation":"34508:6:164","nodeType":"VariableDeclaration","scope":84233,"src":"34492:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84156,"nodeType":"UserDefinedTypeName","pathNode":{"id":84155,"name":"Storage","nameLocations":["34492:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"34492:7:164"},"referencedDeclaration":77269,"src":"34492:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84163,"initialValue":{"arguments":[{"id":84159,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84132,"src":"34533:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84160,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84134,"src":"34542:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":84161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"34549:4:164","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":84158,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84656,"src":"34518:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":84162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34518:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"34475:79:164"},{"assignments":[84166],"declarations":[{"constant":false,"id":84166,"mutability":"mutable","name":"_wrappedVara","nameLocation":"34578:12:164","nodeType":"VariableDeclaration","scope":84233,"src":"34565:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"},"typeName":{"id":84165,"nodeType":"UserDefinedTypeName","pathNode":{"id":84164,"name":"IWrappedVara","nameLocations":["34565:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":77812,"src":"34565:12:164"},"referencedDeclaration":77812,"src":"34565:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":84172,"initialValue":{"arguments":[{"expression":{"expression":{"id":84168,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84157,"src":"34606:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34613:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"34606:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34627:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":86126,"src":"34606:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84167,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"34593:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77812_$","typeString":"type(contract IWrappedVara)"}},"id":84171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34593:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"34565:74:164"},{"clauses":[{"block":{"id":84187,"nodeType":"Block","src":"34751:2:164","statements":[]},"errorName":"","id":84188,"nodeType":"TryCatchClause","src":"34751:2:164"},{"block":{"id":84189,"nodeType":"Block","src":"34760:2:164","statements":[]},"errorName":"","id":84190,"nodeType":"TryCatchClause","src":"34754:8:164"}],"externalCall":{"arguments":[{"expression":{"id":84175,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"34674:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34678:6:164","memberName":"sender","nodeType":"MemberAccess","src":"34674:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84179,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"34694:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":84178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34686:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84177,"name":"address","nodeType":"ElementaryTypeName","src":"34686:7:164","typeDescriptions":{}}},"id":84180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34686:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84181,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84138,"src":"34701:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84182,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84140,"src":"34728:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84183,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84142,"src":"34739:2:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":84184,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84144,"src":"34743:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84185,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84146,"src":"34747:2:164","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":84173,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84166,"src":"34654:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":84174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34667:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"34654:19:164","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":84186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34654:96:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84191,"nodeType":"TryStatement","src":"34650:112:164"},{"assignments":[84193],"declarations":[{"constant":false,"id":84193,"mutability":"mutable","name":"success","nameLocation":"34776:7:164","nodeType":"VariableDeclaration","scope":84233,"src":"34771:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84192,"name":"bool","nodeType":"ElementaryTypeName","src":"34771:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84204,"initialValue":{"arguments":[{"expression":{"id":84196,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"34812:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34816:6:164","memberName":"sender","nodeType":"MemberAccess","src":"34812:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84200,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"34832:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":84199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34824:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84198,"name":"address","nodeType":"ElementaryTypeName","src":"34824:7:164","typeDescriptions":{}}},"id":84201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34824:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84202,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84138,"src":"34839:25:164","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":84194,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84166,"src":"34786:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":84195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34799:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"34786:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":84203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34786:79:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"34771:94:164"},{"expression":{"arguments":[{"id":84206,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84193,"src":"34883:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84207,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"34892:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34892:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"34875:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34875:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84210,"nodeType":"ExpressionStatement","src":"34875:38:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":84220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84215,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84136,"src":"34981:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":84218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35013:1:164","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":84217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35005:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84216,"name":"address","nodeType":"ElementaryTypeName","src":"35005:7:164","typeDescriptions":{}}},"id":84219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35005:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"34981:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84223,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84136,"src":"35031:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"34981:70:164","trueExpression":{"expression":{"id":84221,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35018:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35022:6:164","memberName":"sender","nodeType":"MemberAccess","src":"35018:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84225,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82948,"src":"35069:10:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":84226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35069:12:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":84227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35099:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":84228,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84138,"src":"35121:25:164","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":84212,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84154,"src":"34932:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84211,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"34924:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77171_$","typeString":"type(contract IMirror)"}},"id":84213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34924:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":84214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34953:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":77161,"src":"34924:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":84229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34924:236:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84230,"nodeType":"ExpressionStatement","src":"34924:236:164"},{"expression":{"id":84231,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84154,"src":"35178:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":84152,"id":84232,"nodeType":"Return","src":"35171:13:164"}]},"baseFunctions":[77744],"documentation":{"id":84130,"nodeType":"StructuredDocumentation","src":"32693:1462:164","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":84149,"kind":"modifierInvocation","modifierName":{"id":84148,"name":"whenNotPaused","nameLocations":["34433:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"34433:13:164"},"nodeType":"ModifierInvocation","src":"34433:13:164"}],"name":"createProgramWithExecutableBalance","nameLocation":"34169:34:164","parameters":{"id":84147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84132,"mutability":"mutable","name":"_codeId","nameLocation":"34221:7:164","nodeType":"VariableDeclaration","scope":84234,"src":"34213:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34213:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84134,"mutability":"mutable","name":"_salt","nameLocation":"34246:5:164","nodeType":"VariableDeclaration","scope":84234,"src":"34238:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34238:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84136,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"34269:20:164","nodeType":"VariableDeclaration","scope":84234,"src":"34261:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84135,"name":"address","nodeType":"ElementaryTypeName","src":"34261:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84138,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"34307:25:164","nodeType":"VariableDeclaration","scope":84234,"src":"34299:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84137,"name":"uint128","nodeType":"ElementaryTypeName","src":"34299:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":84140,"mutability":"mutable","name":"_deadline","nameLocation":"34350:9:164","nodeType":"VariableDeclaration","scope":84234,"src":"34342:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84139,"name":"uint256","nodeType":"ElementaryTypeName","src":"34342:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":84142,"mutability":"mutable","name":"_v","nameLocation":"34375:2:164","nodeType":"VariableDeclaration","scope":84234,"src":"34369:8:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":84141,"name":"uint8","nodeType":"ElementaryTypeName","src":"34369:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":84144,"mutability":"mutable","name":"_r","nameLocation":"34395:2:164","nodeType":"VariableDeclaration","scope":84234,"src":"34387:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34387:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84146,"mutability":"mutable","name":"_s","nameLocation":"34415:2:164","nodeType":"VariableDeclaration","scope":84234,"src":"34407:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34407:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34203:220:164"},"returnParameters":{"id":84152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84234,"src":"34456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84150,"name":"address","nodeType":"ElementaryTypeName","src":"34456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34455:9:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84280,"nodeType":"FunctionDefinition","src":"36353:448:164","nodes":[],"body":{"id":84279,"nodeType":"Block","src":"36556:245:164","nodes":[],"statements":[{"assignments":[84251,null],"declarations":[{"constant":false,"id":84251,"mutability":"mutable","name":"mirror","nameLocation":"36575:6:164","nodeType":"VariableDeclaration","scope":84279,"src":"36567:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84250,"name":"address","nodeType":"ElementaryTypeName","src":"36567:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":84257,"initialValue":{"arguments":[{"id":84253,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84237,"src":"36601:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84254,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84239,"src":"36610:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":84255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36617:5:164","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":84252,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84656,"src":"36586:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":84256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36586:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"36566:57:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":84267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84262,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84241,"src":"36674:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":84265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36706:1:164","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":84264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36698:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84263,"name":"address","nodeType":"ElementaryTypeName","src":"36698:7:164","typeDescriptions":{}}},"id":84266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36698:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"36674:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84270,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84241,"src":"36724:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"36674:70:164","trueExpression":{"expression":{"id":84268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36711:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36715:6:164","memberName":"sender","nodeType":"MemberAccess","src":"36711:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84272,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84243,"src":"36746:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":84273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36761:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":84274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36768:1:164","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":84259,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84251,"src":"36642:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84258,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"36634:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77171_$","typeString":"type(contract IMirror)"}},"id":84260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36634:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":84261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36663:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":77161,"src":"36634:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":84275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36634:136:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84276,"nodeType":"ExpressionStatement","src":"36634:136:164"},{"expression":{"id":84277,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84251,"src":"36788:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":84249,"id":84278,"nodeType":"Return","src":"36781:13:164"}]},"baseFunctions":[77758],"documentation":{"id":84235,"nodeType":"StructuredDocumentation","src":"35197:1151:164","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":84246,"kind":"modifierInvocation","modifierName":{"id":84245,"name":"whenNotPaused","nameLocations":["36524:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"36524:13:164"},"nodeType":"ModifierInvocation","src":"36524:13:164"}],"name":"createProgramWithAbiInterface","nameLocation":"36362:29:164","parameters":{"id":84244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84237,"mutability":"mutable","name":"_codeId","nameLocation":"36409:7:164","nodeType":"VariableDeclaration","scope":84280,"src":"36401:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36401:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84239,"mutability":"mutable","name":"_salt","nameLocation":"36434:5:164","nodeType":"VariableDeclaration","scope":84280,"src":"36426:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36426:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84241,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"36457:20:164","nodeType":"VariableDeclaration","scope":84280,"src":"36449:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84240,"name":"address","nodeType":"ElementaryTypeName","src":"36449:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84243,"mutability":"mutable","name":"_abiInterface","nameLocation":"36495:13:164","nodeType":"VariableDeclaration","scope":84280,"src":"36487:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84242,"name":"address","nodeType":"ElementaryTypeName","src":"36487:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36391:123:164"},"returnParameters":{"id":84249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84280,"src":"36547:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84247,"name":"address","nodeType":"ElementaryTypeName","src":"36547:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36546:9:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84386,"nodeType":"FunctionDefinition","src":"38357:1080:164","nodes":[],"body":{"id":84385,"nodeType":"Block","src":"38708:729:164","nodes":[],"statements":[{"assignments":[84307,84310],"declarations":[{"constant":false,"id":84307,"mutability":"mutable","name":"mirror","nameLocation":"38727:6:164","nodeType":"VariableDeclaration","scope":84385,"src":"38719:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84306,"name":"address","nodeType":"ElementaryTypeName","src":"38719:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84310,"mutability":"mutable","name":"router","nameLocation":"38751:6:164","nodeType":"VariableDeclaration","scope":84385,"src":"38735:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84309,"nodeType":"UserDefinedTypeName","pathNode":{"id":84308,"name":"Storage","nameLocations":["38735:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"38735:7:164"},"referencedDeclaration":77269,"src":"38735:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84316,"initialValue":{"arguments":[{"id":84312,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84283,"src":"38776:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84313,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84285,"src":"38785:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":84314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"38792:5:164","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":84311,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84656,"src":"38761:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":84315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38761:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"38718:80:164"},{"assignments":[84319],"declarations":[{"constant":false,"id":84319,"mutability":"mutable","name":"_wrappedVara","nameLocation":"38822:12:164","nodeType":"VariableDeclaration","scope":84385,"src":"38809:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"},"typeName":{"id":84318,"nodeType":"UserDefinedTypeName","pathNode":{"id":84317,"name":"IWrappedVara","nameLocations":["38809:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":77812,"src":"38809:12:164"},"referencedDeclaration":77812,"src":"38809:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":84325,"initialValue":{"arguments":[{"expression":{"expression":{"id":84321,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84310,"src":"38850:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38857:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"38850:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38871:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":86126,"src":"38850:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84320,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"38837:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77812_$","typeString":"type(contract IWrappedVara)"}},"id":84324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38837:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"38809:74:164"},{"clauses":[{"block":{"id":84340,"nodeType":"Block","src":"38995:2:164","statements":[]},"errorName":"","id":84341,"nodeType":"TryCatchClause","src":"38995:2:164"},{"block":{"id":84342,"nodeType":"Block","src":"39004:2:164","statements":[]},"errorName":"","id":84343,"nodeType":"TryCatchClause","src":"38998:8:164"}],"externalCall":{"arguments":[{"expression":{"id":84328,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"38918:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38922:6:164","memberName":"sender","nodeType":"MemberAccess","src":"38918:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84332,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"38938:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":84331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"38930:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84330,"name":"address","nodeType":"ElementaryTypeName","src":"38930:7:164","typeDescriptions":{}}},"id":84333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38930:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84334,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84291,"src":"38945:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84335,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84293,"src":"38972:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84336,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84295,"src":"38983:2:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":84337,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84297,"src":"38987:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84338,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84299,"src":"38991:2:164","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":84326,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84319,"src":"38898:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":84327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38911:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"38898:19:164","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":84339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38898:96:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84344,"nodeType":"TryStatement","src":"38894:112:164"},{"assignments":[84346],"declarations":[{"constant":false,"id":84346,"mutability":"mutable","name":"success","nameLocation":"39020:7:164","nodeType":"VariableDeclaration","scope":84385,"src":"39015:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84345,"name":"bool","nodeType":"ElementaryTypeName","src":"39015:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84357,"initialValue":{"arguments":[{"expression":{"id":84349,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39056:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39060:6:164","memberName":"sender","nodeType":"MemberAccess","src":"39056:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":84353,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39076:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":84352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39068:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84351,"name":"address","nodeType":"ElementaryTypeName","src":"39068:7:164","typeDescriptions":{}}},"id":84354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39068:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84355,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84291,"src":"39083:25:164","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":84347,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84319,"src":"39030:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":84348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39043:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"39030:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":84356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39030:79:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"39015:94:164"},{"expression":{"arguments":[{"id":84359,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84346,"src":"39127:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84360,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"39136:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39136:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84358,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39119:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39119:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84363,"nodeType":"ExpressionStatement","src":"39119:38:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":84373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84368,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84287,"src":"39225:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":84371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39257:1:164","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":84370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39249:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84369,"name":"address","nodeType":"ElementaryTypeName","src":"39249:7:164","typeDescriptions":{}}},"id":84372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39249:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"39225:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84376,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84287,"src":"39275:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"39225:70:164","trueExpression":{"expression":{"id":84374,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39262:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39266:6:164","memberName":"sender","nodeType":"MemberAccess","src":"39262:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84378,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84289,"src":"39313:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":84379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"39344:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":84380,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84291,"src":"39367:25:164","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":84365,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84307,"src":"39176:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84364,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"39168:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77171_$","typeString":"type(contract IMirror)"}},"id":84366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39168:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":84367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39197:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":77161,"src":"39168:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":84381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39168:238:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84382,"nodeType":"ExpressionStatement","src":"39168:238:164"},{"expression":{"id":84383,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84307,"src":"39424:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":84305,"id":84384,"nodeType":"Return","src":"39417:13:164"}]},"baseFunctions":[77782],"documentation":{"id":84281,"nodeType":"StructuredDocumentation","src":"36807:1545:164","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":84302,"kind":"modifierInvocation","modifierName":{"id":84301,"name":"whenNotPaused","nameLocations":["38676:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"38676:13:164"},"nodeType":"ModifierInvocation","src":"38676:13:164"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"38366:49:164","parameters":{"id":84300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84283,"mutability":"mutable","name":"_codeId","nameLocation":"38433:7:164","nodeType":"VariableDeclaration","scope":84386,"src":"38425:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38425:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84285,"mutability":"mutable","name":"_salt","nameLocation":"38458:5:164","nodeType":"VariableDeclaration","scope":84386,"src":"38450:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38450:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84287,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"38481:20:164","nodeType":"VariableDeclaration","scope":84386,"src":"38473:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84286,"name":"address","nodeType":"ElementaryTypeName","src":"38473:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84289,"mutability":"mutable","name":"_abiInterface","nameLocation":"38519:13:164","nodeType":"VariableDeclaration","scope":84386,"src":"38511:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84288,"name":"address","nodeType":"ElementaryTypeName","src":"38511:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84291,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"38550:25:164","nodeType":"VariableDeclaration","scope":84386,"src":"38542:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84290,"name":"uint128","nodeType":"ElementaryTypeName","src":"38542:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":84293,"mutability":"mutable","name":"_deadline","nameLocation":"38593:9:164","nodeType":"VariableDeclaration","scope":84386,"src":"38585:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84292,"name":"uint256","nodeType":"ElementaryTypeName","src":"38585:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":84295,"mutability":"mutable","name":"_v","nameLocation":"38618:2:164","nodeType":"VariableDeclaration","scope":84386,"src":"38612:8:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":84294,"name":"uint8","nodeType":"ElementaryTypeName","src":"38612:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":84297,"mutability":"mutable","name":"_r","nameLocation":"38638:2:164","nodeType":"VariableDeclaration","scope":84386,"src":"38630:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38630:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84299,"mutability":"mutable","name":"_s","nameLocation":"38658:2:164","nodeType":"VariableDeclaration","scope":84386,"src":"38650:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38650:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"38415:251:164"},"returnParameters":{"id":84305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84386,"src":"38699:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84303,"name":"address","nodeType":"ElementaryTypeName","src":"38699:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38698:9:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84553,"nodeType":"FunctionDefinition","src":"39898:2151:164","nodes":[],"body":{"id":84552,"nodeType":"Block","src":"40074:1975:164","nodes":[],"statements":[{"assignments":[84403],"declarations":[{"constant":false,"id":84403,"mutability":"mutable","name":"router","nameLocation":"40100:6:164","nodeType":"VariableDeclaration","scope":84552,"src":"40084:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84402,"nodeType":"UserDefinedTypeName","pathNode":{"id":84401,"name":"Storage","nameLocations":["40084:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"40084:7:164"},"referencedDeclaration":77269,"src":"40084:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84406,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":84404,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"40109:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":84405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40109:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"40084:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84408,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"40137:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40144:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"40137:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40157:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"40137:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":84413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40173:1:164","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":84412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"40165:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":84411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40165:7:164","typeDescriptions":{}}},"id":84414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40165:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40137:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84416,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"40177:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40177:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84407,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40129:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40129:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84419,"nodeType":"ExpressionStatement","src":"40129:82:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84420,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"40375:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40382:8:164","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":77240,"src":"40375:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":84422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40394:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"40375:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84447,"nodeType":"IfStatement","src":"40371:295:164","trueBody":{"id":84446,"nodeType":"Block","src":"40397:269:164","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":84427,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"40443:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40450:9:164","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":86169,"src":"40443:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84429,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"40461:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40468:6:164","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":86178,"src":"40461:13:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":84425,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"40419:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40424:18:164","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":86716,"src":"40419:23:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":84431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40419:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84432,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77389,"src":"40477:24:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40477:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84424,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40411:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40411:93:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84435,"nodeType":"ExpressionStatement","src":"40411:93:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84437,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"40588:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40594:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"40588:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":84439,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"40606:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40613:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"40606:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"40588:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84442,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77391,"src":"40629:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40629:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84436,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40580:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40580:75:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84445,"nodeType":"ExpressionStatement","src":"40580:75:164"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84449,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"40779:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40786:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77248,"src":"40779:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":84451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40807:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86242,"src":"40779:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":84452,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"40815:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40822:26:164","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":86175,"src":"40815:33:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40779:69:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84455,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77393,"src":"40850:33:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40850:35:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84448,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40758:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40758:137:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84458,"nodeType":"ExpressionStatement","src":"40758:137:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":84465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84460,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"40914:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40921:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77248,"src":"40914:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":84462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40942:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86244,"src":"40914:37:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":84463,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"40955:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40962:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"40955:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"40914:62:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84466,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77395,"src":"40978:22:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40978:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84459,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40906:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40906:97:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84469,"nodeType":"ExpressionStatement","src":"40906:97:164"},{"assignments":[84471],"declarations":[{"constant":false,"id":84471,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"41022:20:164","nodeType":"VariableDeclaration","scope":84552,"src":"41014:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84470,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41014:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84476,"initialValue":{"arguments":[{"id":84473,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"41058:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84474,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41066:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":84472,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84735,"src":"41045:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77269_storage_ptr_$_t_struct$_BatchCommitment_$86199_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":84475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41045:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41014:59:164"},{"assignments":[84478],"declarations":[{"constant":false,"id":84478,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"41091:20:164","nodeType":"VariableDeclaration","scope":84552,"src":"41083:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41083:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84483,"initialValue":{"arguments":[{"id":84480,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"41127:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84481,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41135:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":84479,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84877,"src":"41114:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77269_storage_ptr_$_t_struct$_BatchCommitment_$86199_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":84482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41114:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41083:59:164"},{"assignments":[84485],"declarations":[{"constant":false,"id":84485,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"41160:22:164","nodeType":"VariableDeclaration","scope":84552,"src":"41152:30:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41152:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84490,"initialValue":{"arguments":[{"id":84487,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"41200:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84488,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41208:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":84486,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85034,"src":"41185:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77269_storage_ptr_$_t_struct$_BatchCommitment_$86199_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":84489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41185:30:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41152:63:164"},{"assignments":[84492],"declarations":[{"constant":false,"id":84492,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"41233:25:164","nodeType":"VariableDeclaration","scope":84552,"src":"41225:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41225:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84497,"initialValue":{"arguments":[{"id":84494,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"41279:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84495,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41287:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":84493,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85182,"src":"41261:17:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77269_storage_ptr_$_t_struct$_BatchCommitment_$86199_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":84496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41261:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41225:69:164"},{"assignments":[84499],"declarations":[{"constant":false,"id":84499,"mutability":"mutable","name":"_batchHash","nameLocation":"41313:10:164","nodeType":"VariableDeclaration","scope":84552,"src":"41305:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41305:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84515,"initialValue":{"arguments":[{"expression":{"id":84502,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41364:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41371:9:164","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":86169,"src":"41364:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84504,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41394:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41401:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"41394:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":84506,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41429:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41436:26:164","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":86175,"src":"41429:33:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84508,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41476:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41483:6:164","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":86178,"src":"41476:13:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":84510,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84471,"src":"41503:20:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84511,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84478,"src":"41537:20:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84512,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84485,"src":"41571:22:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84513,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84492,"src":"41607:25:164","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":84500,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"41326:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41331:19:164","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86554,"src":"41326:24:164","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":84514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41326:316:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41305:337:164"},{"expression":{"id":84522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":84516,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"41653:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41660:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77248,"src":"41653:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":84520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41681:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86242,"src":"41653:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84521,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84499,"src":"41688:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41653:45:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84523,"nodeType":"ExpressionStatement","src":"41653:45:164"},{"expression":{"id":84531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":84524,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"41708:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41715:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":77248,"src":"41708:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$86245_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":84528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41736:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86244,"src":"41708:37:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":84529,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41748:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41755:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"41748:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"41708:61:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":84532,"nodeType":"ExpressionStatement","src":"41708:61:164"},{"eventCall":{"arguments":[{"id":84534,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84499,"src":"41800:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84533,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77274,"src":"41785:14:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":84535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41785:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84536,"nodeType":"EmitStatement","src":"41780:31:164"},{"expression":{"arguments":[{"arguments":[{"id":84540,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84403,"src":"41886:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84541,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82438,"src":"41894:17:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84542,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84499,"src":"41913:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84543,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84393,"src":"41925:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"}},{"id":84544,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84396,"src":"41941:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":84545,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84390,"src":"41954:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41961:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"41954:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$86423","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":84538,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"41843:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41848:20:164","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":87002,"src":"41843:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77269_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$86423_$_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":84547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41843:146:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84548,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77423,"src":"42003:27:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42003:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84537,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"41822:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41822:220:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84551,"nodeType":"ExpressionStatement","src":"41822:220:164"}]},"baseFunctions":[77795],"documentation":{"id":84387,"nodeType":"StructuredDocumentation","src":"39443:450:164","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":84399,"kind":"modifierInvocation","modifierName":{"id":84398,"name":"nonReentrant","nameLocations":["40061:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":6525,"src":"40061:12:164"},"nodeType":"ModifierInvocation","src":"40061:12:164"}],"name":"commitBatch","nameLocation":"39907:11:164","parameters":{"id":84397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84390,"mutability":"mutable","name":"_batch","nameLocation":"39958:6:164","nodeType":"VariableDeclaration","scope":84553,"src":"39928:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84389,"nodeType":"UserDefinedTypeName","pathNode":{"id":84388,"name":"Gear.BatchCommitment","nameLocations":["39928:4:164","39933:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86199,"src":"39928:20:164"},"referencedDeclaration":86199,"src":"39928:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":84393,"mutability":"mutable","name":"_signatureType","nameLocation":"39993:14:164","nodeType":"VariableDeclaration","scope":84553,"src":"39974:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"},"typeName":{"id":84392,"nodeType":"UserDefinedTypeName","pathNode":{"id":84391,"name":"Gear.SignatureType","nameLocations":["39974:4:164","39979:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":86423,"src":"39974:18:164"},"referencedDeclaration":86423,"src":"39974:18:164","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$86423","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":84396,"mutability":"mutable","name":"_signatures","nameLocation":"40034:11:164","nodeType":"VariableDeclaration","scope":84553,"src":"40017:28:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":84394,"name":"bytes","nodeType":"ElementaryTypeName","src":"40017:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":84395,"nodeType":"ArrayTypeName","src":"40017:7:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"39918:133:164"},"returnParameters":{"id":84400,"nodeType":"ParameterList","parameters":[],"src":"40074:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":84656,"nodeType":"FunctionDefinition","src":"42093:934:164","nodes":[],"body":{"id":84655,"nodeType":"Block","src":"42207:820:164","nodes":[],"statements":[{"assignments":[84569],"declarations":[{"constant":false,"id":84569,"mutability":"mutable","name":"router","nameLocation":"42233:6:164","nodeType":"VariableDeclaration","scope":84655,"src":"42217:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84568,"nodeType":"UserDefinedTypeName","pathNode":{"id":84567,"name":"Storage","nameLocations":["42217:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"42217:7:164"},"referencedDeclaration":77269,"src":"42217:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84572,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":84570,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"42242:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":84571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42242:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"42217:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84574,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84569,"src":"42269:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42276:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"42269:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42289:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"42269:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":84579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42305:1:164","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":84578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42297:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":84577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42297:7:164","typeDescriptions":{}}},"id":84580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42297:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"42269:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84582,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"42309:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42309:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84573,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42261:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42261:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84585,"nodeType":"ExpressionStatement","src":"42261:82:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"},"id":84595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":84587,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84569,"src":"42362:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42369:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"42362:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42382:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"42362:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":84591,"indexExpression":{"id":84590,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"42388:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42362:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":84592,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"42400:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42405:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86239,"src":"42400:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86239_$","typeString":"type(enum Gear.CodeState)"}},"id":84594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42415:9:164","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":86238,"src":"42400:24:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"src":"42362:62:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84596,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77385,"src":"42426:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42426:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84586,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42354:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42354:91:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84599,"nodeType":"ExpressionStatement","src":"42354:91:164"},{"assignments":[84601],"declarations":[{"constant":false,"id":84601,"mutability":"mutable","name":"salt","nameLocation":"42614:4:164","nodeType":"VariableDeclaration","scope":84655,"src":"42606:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42606:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84607,"initialValue":{"arguments":[{"id":84604,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"42656:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84605,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84557,"src":"42665:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84602,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"42621:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":84603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42628:27:164","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62942,"src":"42621:34:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":84606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42621:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"42606:65:164"},{"assignments":[84609],"declarations":[{"constant":false,"id":84609,"mutability":"mutable","name":"actorId","nameLocation":"42689:7:164","nodeType":"VariableDeclaration","scope":84655,"src":"42681:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84608,"name":"address","nodeType":"ElementaryTypeName","src":"42681:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84628,"initialValue":{"condition":{"id":84610,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84559,"src":"42699:8:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":84623,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"42822:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":84622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42814:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84621,"name":"address","nodeType":"ElementaryTypeName","src":"42814:7:164","typeDescriptions":{}}},"id":84624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42814:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84625,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84601,"src":"42829:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84619,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85928,"src":"42788:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$85928_$","typeString":"type(library Clones)"}},"id":84620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42795:18:164","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"42788:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":84626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42788:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"42699:135:164","trueExpression":{"arguments":[{"arguments":[{"id":84615,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"42761:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$85532","typeString":"contract Router"}],"id":84614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42753:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":84613,"name":"address","nodeType":"ElementaryTypeName","src":"42753:7:164","typeDescriptions":{}}},"id":84616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42753:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84617,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84601,"src":"42768:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84611,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86012,"src":"42722:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$86012_$","typeString":"type(library ClonesSmall)"}},"id":84612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42734:18:164","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":85950,"src":"42722:30:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":84618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42722:51:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"42681:153:164"},{"expression":{"id":84637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":84629,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84569,"src":"42845:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42852:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"42845:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42865:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86292,"src":"42845:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":84635,"indexExpression":{"id":84632,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84609,"src":"42874:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"42845:37:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84636,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"42885:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"42845:47:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84638,"nodeType":"ExpressionStatement","src":"42845:47:164"},{"expression":{"id":84644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"42902:35:164","subExpression":{"expression":{"expression":{"id":84639,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84569,"src":"42902:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42909:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"42902:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"42922:13:164","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":86295,"src":"42902:33:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84645,"nodeType":"ExpressionStatement","src":"42902:35:164"},{"eventCall":{"arguments":[{"id":84647,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84609,"src":"42968:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84648,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"42977:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84646,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77320,"src":"42953:14:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":84649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42953:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84650,"nodeType":"EmitStatement","src":"42948:37:164"},{"expression":{"components":[{"id":84651,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84609,"src":"43004:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84652,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84569,"src":"43013:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":84653,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"43003:17:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":84566,"id":84654,"nodeType":"Return","src":"42996:24:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"42102:14:164","parameters":{"id":84560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84555,"mutability":"mutable","name":"_codeId","nameLocation":"42125:7:164","nodeType":"VariableDeclaration","scope":84656,"src":"42117:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42117:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84557,"mutability":"mutable","name":"_salt","nameLocation":"42142:5:164","nodeType":"VariableDeclaration","scope":84656,"src":"42134:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42134:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":84559,"mutability":"mutable","name":"_isSmall","nameLocation":"42154:8:164","nodeType":"VariableDeclaration","scope":84656,"src":"42149:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84558,"name":"bool","nodeType":"ElementaryTypeName","src":"42149:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42116:47:164"},"returnParameters":{"id":84566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84656,"src":"42181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84561,"name":"address","nodeType":"ElementaryTypeName","src":"42181:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84656,"src":"42190:15:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84564,"nodeType":"UserDefinedTypeName","pathNode":{"id":84563,"name":"Storage","nameLocations":["42190:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"42190:7:164"},"referencedDeclaration":77269,"src":"42190:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"42180:26:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84735,"nodeType":"FunctionDefinition","src":"43033:846:164","nodes":[],"body":{"id":84734,"nodeType":"Block","src":"43143:736:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84668,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84662,"src":"43161:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43168:15:164","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":86183,"src":"43161:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$86151_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":84670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43184:6:164","memberName":"length","nodeType":"MemberAccess","src":"43161:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":84671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43194:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43161:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84673,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77397,"src":"43197:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43197:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84667,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43153:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43153:70:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84676,"nodeType":"ExpressionStatement","src":"43153:70:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84677,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84662,"src":"43238:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43245:15:164","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":86183,"src":"43238:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$86151_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":84679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43261:6:164","memberName":"length","nodeType":"MemberAccess","src":"43238:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":84680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43271:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43238:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84687,"nodeType":"IfStatement","src":"43234:177:164","trueBody":{"id":84686,"nodeType":"Block","src":"43274:137:164","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":84683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43397:2:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":84682,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"43387:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":84684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43387:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84666,"id":84685,"nodeType":"Return","src":"43380:20:164"}]}},{"assignments":[84692],"declarations":[{"constant":false,"id":84692,"mutability":"mutable","name":"_commitment","nameLocation":"43451:11:164","nodeType":"VariableDeclaration","scope":84734,"src":"43421:41:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":84691,"nodeType":"UserDefinedTypeName","pathNode":{"id":84690,"name":"Gear.ChainCommitment","nameLocations":["43421:4:164","43426:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86151,"src":"43421:20:164"},"referencedDeclaration":86151,"src":"43421:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":84697,"initialValue":{"baseExpression":{"expression":{"id":84693,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84662,"src":"43465:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43472:15:164","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":86183,"src":"43465:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$86151_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":84696,"indexExpression":{"hexValue":"30","id":84695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43488:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43465:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"43421:69:164"},{"assignments":[84699],"declarations":[{"constant":false,"id":84699,"mutability":"mutable","name":"_transitionsHash","nameLocation":"43509:16:164","nodeType":"VariableDeclaration","scope":84734,"src":"43501:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43501:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84705,"initialValue":{"arguments":[{"id":84701,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84659,"src":"43547:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84702,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84692,"src":"43555:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43567:11:164","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":86144,"src":"43555:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86357_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86357_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":84700,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85302,"src":"43528:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$77269_storage_ptr_$_t_array$_t_struct$_StateTransition_$86357_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":84704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43528:51:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43501:78:164"},{"eventCall":{"arguments":[{"expression":{"id":84707,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84692,"src":"43607:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43619:4:164","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":86147,"src":"43607:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84706,"name":"MBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"43595:11:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":84709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43595:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84710,"nodeType":"EmitStatement","src":"43590:34:164"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84711,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84692,"src":"43638:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43650:20:164","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"43638:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":84715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43682:1:164","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":84714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43674:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":84713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43674:7:164","typeDescriptions":{}}},"id":84716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43674:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"43638:46:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84724,"nodeType":"IfStatement","src":"43634:127:164","trueBody":{"id":84723,"nodeType":"Block","src":"43686:75:164","statements":[{"eventCall":{"arguments":[{"expression":{"id":84719,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84692,"src":"43717:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43729:20:164","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"43717:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84718,"name":"EBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77284,"src":"43705:11:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":84721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43705:45:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84722,"nodeType":"EmitStatement","src":"43700:50:164"}]}},{"expression":{"arguments":[{"id":84727,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84699,"src":"43803:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84728,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84692,"src":"43821:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43833:4:164","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":86147,"src":"43821:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84730,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84692,"src":"43839:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$86151_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":84731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43851:20:164","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":86150,"src":"43839:32:164","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":84725,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"43778:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43783:19:164","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86450,"src":"43778:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":84732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43778:94:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84666,"id":84733,"nodeType":"Return","src":"43771:101:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"43042:12:164","parameters":{"id":84663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84659,"mutability":"mutable","name":"router","nameLocation":"43071:6:164","nodeType":"VariableDeclaration","scope":84735,"src":"43055:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84658,"nodeType":"UserDefinedTypeName","pathNode":{"id":84657,"name":"Storage","nameLocations":["43055:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"43055:7:164"},"referencedDeclaration":77269,"src":"43055:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84662,"mutability":"mutable","name":"_batch","nameLocation":"43109:6:164","nodeType":"VariableDeclaration","scope":84735,"src":"43079:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84661,"nodeType":"UserDefinedTypeName","pathNode":{"id":84660,"name":"Gear.BatchCommitment","nameLocations":["43079:4:164","43084:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86199,"src":"43079:20:164"},"referencedDeclaration":86199,"src":"43079:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43054:62:164"},"returnParameters":{"id":84666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84735,"src":"43134:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84664,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43134:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43133:9:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84877,"nodeType":"FunctionDefinition","src":"43885:1402:164","nodes":[],"body":{"id":84876,"nodeType":"Block","src":"43995:1292:164","nodes":[],"statements":[{"assignments":[84747],"declarations":[{"constant":false,"id":84747,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"44013:18:164","nodeType":"VariableDeclaration","scope":84876,"src":"44005:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84746,"name":"uint256","nodeType":"ElementaryTypeName","src":"44005:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84751,"initialValue":{"expression":{"expression":{"id":84748,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84741,"src":"44034:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44041:15:164","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":86188,"src":"44034:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$86138_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":84750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44057:6:164","memberName":"length","nodeType":"MemberAccess","src":"44034:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44005:58:164"},{"assignments":[84753],"declarations":[{"constant":false,"id":84753,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"44081:23:164","nodeType":"VariableDeclaration","scope":84876,"src":"44073:31:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84752,"name":"uint256","nodeType":"ElementaryTypeName","src":"44073:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84757,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84754,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84747,"src":"44107:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":84755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44128:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"44107:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44073:57:164"},{"assignments":[84759],"declarations":[{"constant":false,"id":84759,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"44148:18:164","nodeType":"VariableDeclaration","scope":84876,"src":"44140:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84758,"name":"uint256","nodeType":"ElementaryTypeName","src":"44140:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84764,"initialValue":{"arguments":[{"id":84762,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84753,"src":"44185:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84760,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"44169:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":84761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44176:8:164","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"44169:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":84763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44169:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44140:69:164"},{"assignments":[84766],"declarations":[{"constant":false,"id":84766,"mutability":"mutable","name":"offset","nameLocation":"44227:6:164","nodeType":"VariableDeclaration","scope":84876,"src":"44219:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84765,"name":"uint256","nodeType":"ElementaryTypeName","src":"44219:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84768,"initialValue":{"hexValue":"30","id":84767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44236:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"44219:18:164"},{"body":{"id":84867,"nodeType":"Block","src":"44297:884:164","statements":[{"assignments":[84783],"declarations":[{"constant":false,"id":84783,"mutability":"mutable","name":"_commitment","nameLocation":"44340:11:164","nodeType":"VariableDeclaration","scope":84867,"src":"44311:40:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":84782,"nodeType":"UserDefinedTypeName","pathNode":{"id":84781,"name":"Gear.CodeCommitment","nameLocations":["44311:4:164","44316:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":86138,"src":"44311:19:164"},"referencedDeclaration":86138,"src":"44311:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":84788,"initialValue":{"baseExpression":{"expression":{"id":84784,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84741,"src":"44354:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44361:15:164","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":86188,"src":"44354:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$86138_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":84787,"indexExpression":{"id":84786,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84770,"src":"44377:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44354:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"44311:68:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"},"id":84799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":84790,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84738,"src":"44419:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44426:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"44419:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44439:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"44419:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":84795,"indexExpression":{"expression":{"id":84793,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84783,"src":"44445:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44457:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86134,"src":"44445:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44419:41:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":84796,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"44464:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44469:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86239,"src":"44464:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86239_$","typeString":"type(enum Gear.CodeState)"}},"id":84798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44479:19:164","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":86236,"src":"44464:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"src":"44419:79:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84800,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77401,"src":"44516:26:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44516:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44394:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44394:164:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84803,"nodeType":"ExpressionStatement","src":"44394:164:164"},{"condition":{"expression":{"id":84804,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84783,"src":"44577:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44589:5:164","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":86137,"src":"44577:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":84835,"nodeType":"Block","src":"44762:81:164","statements":[{"expression":{"id":84833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"44780:48:164","subExpression":{"baseExpression":{"expression":{"expression":{"id":84827,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84738,"src":"44787:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44794:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"44787:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44807:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"44787:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":84832,"indexExpression":{"expression":{"id":84830,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84783,"src":"44813:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44825:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86134,"src":"44813:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"44787:41:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84834,"nodeType":"ExpressionStatement","src":"44780:48:164"}]},"id":84836,"nodeType":"IfStatement","src":"44573:270:164","trueBody":{"id":84826,"nodeType":"Block","src":"44596:160:164","statements":[{"expression":{"id":84817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":84806,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84738,"src":"44614:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44621:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"44614:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44634:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":86287,"src":"44614:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$86239_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":84813,"indexExpression":{"expression":{"id":84809,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84783,"src":"44640:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44652:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86134,"src":"44640:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"44614:41:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":84814,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"44658:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44663:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":86239,"src":"44658:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$86239_$","typeString":"type(enum Gear.CodeState)"}},"id":84816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44673:9:164","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":86238,"src":"44658:24:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"src":"44614:68:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$86239","typeString":"enum Gear.CodeState"}},"id":84818,"nodeType":"ExpressionStatement","src":"44614:68:164"},{"expression":{"id":84824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"44700:41:164","subExpression":{"expression":{"expression":{"id":84819,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84738,"src":"44700:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44707:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"44700:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"44720:19:164","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":86298,"src":"44700:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84825,"nodeType":"ExpressionStatement","src":"44700:41:164"}]}},{"eventCall":{"arguments":[{"expression":{"id":84838,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84783,"src":"44879:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44891:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86134,"src":"44879:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84840,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84783,"src":"44895:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44907:5:164","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":86137,"src":"44895:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":84837,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77296,"src":"44862:16:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":84842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44862:51:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84843,"nodeType":"EmitStatement","src":"44857:56:164"},{"assignments":[84845],"declarations":[{"constant":false,"id":84845,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"44936:18:164","nodeType":"VariableDeclaration","scope":84867,"src":"44928:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44928:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84853,"initialValue":{"arguments":[{"expression":{"id":84848,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84783,"src":"44981:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44993:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":86134,"src":"44981:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84850,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84783,"src":"44997:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$86138_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":84851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45009:5:164","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":86137,"src":"44997:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":84846,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"44957:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44962:18:164","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86467,"src":"44957:23:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":84852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44957:58:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"44928:87:164"},{"expression":{"arguments":[{"id":84857,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"45055:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84858,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84766,"src":"45075:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84859,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84845,"src":"45083:18:164","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":84854,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"45029:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":84856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45036:18:164","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"45029:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":84860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45029:73:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84861,"nodeType":"ExpressionStatement","src":"45029:73:164"},{"id":84866,"nodeType":"UncheckedBlock","src":"45116:55:164","statements":[{"expression":{"id":84864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":84862,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84766,"src":"45144:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":84863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45154:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"45144:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84865,"nodeType":"ExpressionStatement","src":"45144:12:164"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84773,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84770,"src":"44268:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":84774,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84747,"src":"44272:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44268:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84868,"initializationExpression":{"assignments":[84770],"declarations":[{"constant":false,"id":84770,"mutability":"mutable","name":"i","nameLocation":"44261:1:164","nodeType":"VariableDeclaration","scope":84868,"src":"44253:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84769,"name":"uint256","nodeType":"ElementaryTypeName","src":"44253:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84772,"initialValue":{"hexValue":"30","id":84771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44265:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"44253:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":84777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"44292:3:164","subExpression":{"id":84776,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84770,"src":"44292:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84778,"nodeType":"ExpressionStatement","src":"44292:3:164"},"nodeType":"ForStatement","src":"44248:933:164"},{"expression":{"arguments":[{"id":84871,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84759,"src":"45233:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":84872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45253:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":84873,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84753,"src":"45256:23:164","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":84869,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"45198:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":84870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45205:27:164","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"45198:34:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":84874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45198:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84745,"id":84875,"nodeType":"Return","src":"45191:89:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"43894:12:164","parameters":{"id":84742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84738,"mutability":"mutable","name":"router","nameLocation":"43923:6:164","nodeType":"VariableDeclaration","scope":84877,"src":"43907:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84737,"nodeType":"UserDefinedTypeName","pathNode":{"id":84736,"name":"Storage","nameLocations":["43907:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"43907:7:164"},"referencedDeclaration":77269,"src":"43907:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84741,"mutability":"mutable","name":"_batch","nameLocation":"43961:6:164","nodeType":"VariableDeclaration","scope":84877,"src":"43931:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84740,"nodeType":"UserDefinedTypeName","pathNode":{"id":84739,"name":"Gear.BatchCommitment","nameLocations":["43931:4:164","43936:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86199,"src":"43931:20:164"},"referencedDeclaration":86199,"src":"43931:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43906:62:164"},"returnParameters":{"id":84745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84877,"src":"43986:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43986:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43985:9:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85034,"nodeType":"FunctionDefinition","src":"45329:1705:164","nodes":[],"body":{"id":85033,"nodeType":"Block","src":"45441:1593:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84889,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84883,"src":"45459:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45466:17:164","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":86193,"src":"45459:24:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86209_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":84891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45484:6:164","memberName":"length","nodeType":"MemberAccess","src":"45459:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":84892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45494:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"45459:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84894,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77403,"src":"45497:25:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45497:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84888,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45451:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45451:74:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84897,"nodeType":"ExpressionStatement","src":"45451:74:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84898,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84883,"src":"45540:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45547:17:164","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":86193,"src":"45540:24:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86209_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":84900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45565:6:164","memberName":"length","nodeType":"MemberAccess","src":"45540:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":84901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45575:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45540:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84908,"nodeType":"IfStatement","src":"45536:179:164","trueBody":{"id":84907,"nodeType":"Block","src":"45578:137:164","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":84904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45701:2:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":84903,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"45691:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":84905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45691:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84887,"id":84906,"nodeType":"Return","src":"45684:20:164"}]}},{"assignments":[84913],"declarations":[{"constant":false,"id":84913,"mutability":"mutable","name":"_commitment","nameLocation":"45757:11:164","nodeType":"VariableDeclaration","scope":85033,"src":"45725:43:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":84912,"nodeType":"UserDefinedTypeName","pathNode":{"id":84911,"name":"Gear.RewardsCommitment","nameLocations":["45725:4:164","45730:17:164"],"nodeType":"IdentifierPath","referencedDeclaration":86209,"src":"45725:22:164"},"referencedDeclaration":86209,"src":"45725:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":84918,"initialValue":{"baseExpression":{"expression":{"id":84914,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84883,"src":"45771:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45778:17:164","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":86193,"src":"45771:24:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$86209_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":84917,"indexExpression":{"hexValue":"30","id":84916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45796:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45771:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"45725:73:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":84924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84920,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"45817:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45829:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"45817:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":84922,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84883,"src":"45841:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45848:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"45841:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"45817:45:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84925,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77405,"src":"45864:35:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45864:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84919,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45809:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45809:93:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84928,"nodeType":"ExpressionStatement","src":"45809:93:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":84935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84930,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"45920:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45932:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"45920:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":84932,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84880,"src":"45945:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45952:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"45945:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45965:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86258,"src":"45945:29:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"45920:54:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84936,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77407,"src":"45976:32:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45976:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84929,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45912:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45912:99:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84939,"nodeType":"ExpressionStatement","src":"45912:99:164"},{"assignments":[84941],"declarations":[{"constant":false,"id":84941,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"46030:18:164","nodeType":"VariableDeclaration","scope":85033,"src":"46022:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84940,"name":"uint256","nodeType":"ElementaryTypeName","src":"46022:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84948,"initialValue":{"arguments":[{"id":84944,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84880,"src":"46067:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84945,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"46075:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46087:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"46075:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":84942,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"46051:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46056:10:164","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":87210,"src":"46051:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46051:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46022:75:164"},{"assignments":[84950],"declarations":[{"constant":false,"id":84950,"mutability":"mutable","name":"batchEraIndex","nameLocation":"46115:13:164","nodeType":"VariableDeclaration","scope":85033,"src":"46107:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84949,"name":"uint256","nodeType":"ElementaryTypeName","src":"46107:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84957,"initialValue":{"arguments":[{"id":84953,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84880,"src":"46147:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84954,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84883,"src":"46155:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46162:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":86172,"src":"46155:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":84951,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"46131:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":84952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46136:10:164","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":87210,"src":"46131:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46131:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46107:70:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84959,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84941,"src":"46196:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":84960,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84950,"src":"46217:13:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46196:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84962,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77409,"src":"46232:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46232:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84958,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46188:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46188:78:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84965,"nodeType":"ExpressionStatement","src":"46188:78:164"},{"assignments":[84967],"declarations":[{"constant":false,"id":84967,"mutability":"mutable","name":"_middleware","nameLocation":"46285:11:164","nodeType":"VariableDeclaration","scope":85033,"src":"46277:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84966,"name":"address","nodeType":"ElementaryTypeName","src":"46277:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84971,"initialValue":{"expression":{"expression":{"id":84968,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84880,"src":"46299:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46306:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"46299:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46320:10:164","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":86129,"src":"46299:31:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"46277:53:164"},{"assignments":[84973],"declarations":[{"constant":false,"id":84973,"mutability":"mutable","name":"success","nameLocation":"46345:7:164","nodeType":"VariableDeclaration","scope":85033,"src":"46340:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84972,"name":"bool","nodeType":"ElementaryTypeName","src":"46340:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84989,"initialValue":{"arguments":[{"id":84980,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84967,"src":"46423:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84981,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"46436:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46448:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":86203,"src":"46436:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86215_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":84983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46458:6:164","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":86212,"src":"46436:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":84984,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"46467:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46479:7:164","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":86206,"src":"46467:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":84986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46487:11:164","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":86222,"src":"46467:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46436:62:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":84975,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84880,"src":"46368:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46375:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"46368:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46389:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":86126,"src":"46368:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84974,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77812,"src":"46355:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$77812_$","typeString":"type(contract IWrappedVara)"}},"id":84978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46355:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$77812","typeString":"contract IWrappedVara"}},"id":84979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46415:7:164","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":2659,"src":"46355:67:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":84988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46355:144:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"46340:159:164"},{"expression":{"arguments":[{"id":84991,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84973,"src":"46517:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84992,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77411,"src":"46526:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46526:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84990,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46509:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46509:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84995,"nodeType":"ExpressionStatement","src":"46509:38:164"},{"assignments":[84997],"declarations":[{"constant":false,"id":84997,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"46566:20:164","nodeType":"VariableDeclaration","scope":85033,"src":"46558:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46558:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":85012,"initialValue":{"arguments":[{"expression":{"expression":{"id":85002,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84880,"src":"46670:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46677:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":77252,"src":"46670:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$86130_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":85004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46691:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":86126,"src":"46670:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":85005,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"46704:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":85006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46716:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":86203,"src":"46704:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86215_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":85007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46726:6:164","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":86212,"src":"46704:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":85008,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"46734:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":85009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46746:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":86203,"src":"46734:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$86215_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":85010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46756:4:164","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":86214,"src":"46734:26:164","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":84999,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84967,"src":"46601:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84998,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"46589:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$76902_$","typeString":"type(contract IMiddleware)"}},"id":85000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46589:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$76902","typeString":"contract IMiddleware"}},"id":85001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46627:25:164","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":76890,"src":"46589:63:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":85011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46589:185:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46558:216:164"},{"assignments":[85014],"declarations":[{"constant":false,"id":85014,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"46793:18:164","nodeType":"VariableDeclaration","scope":85033,"src":"46785:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46785:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":85024,"initialValue":{"arguments":[{"expression":{"id":85019,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"46875:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":85020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46887:7:164","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":86206,"src":"46875:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":85021,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"46896:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":85022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46908:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"46896:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$86225_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":85016,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84967,"src":"46838:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85015,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76902,"src":"46826:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$76902_$","typeString":"type(contract IMiddleware)"}},"id":85017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46826:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$76902","typeString":"contract IMiddleware"}},"id":85018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46851:23:164","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":76901,"src":"46826:48:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$86225_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":85023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46826:92:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46785:133:164"},{"expression":{"arguments":[{"id":85027,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84997,"src":"46963:20:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":85028,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85014,"src":"46985:18:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":85029,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84913,"src":"47005:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$86209_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":85030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47017:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86208,"src":"47005:21:164","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":85025,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"46936:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":85026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46941:21:164","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86489,"src":"46936:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":85031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46936:91:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84887,"id":85032,"nodeType":"Return","src":"46929:98:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"45338:14:164","parameters":{"id":84884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84880,"mutability":"mutable","name":"router","nameLocation":"45369:6:164","nodeType":"VariableDeclaration","scope":85034,"src":"45353:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84879,"nodeType":"UserDefinedTypeName","pathNode":{"id":84878,"name":"Storage","nameLocations":["45353:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"45353:7:164"},"referencedDeclaration":77269,"src":"45353:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84883,"mutability":"mutable","name":"_batch","nameLocation":"45407:6:164","nodeType":"VariableDeclaration","scope":85034,"src":"45377:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84882,"nodeType":"UserDefinedTypeName","pathNode":{"id":84881,"name":"Gear.BatchCommitment","nameLocations":["45377:4:164","45382:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86199,"src":"45377:20:164"},"referencedDeclaration":86199,"src":"45377:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"45352:62:164"},"returnParameters":{"id":84887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85034,"src":"45432:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45432:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"45431:9:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85182,"nodeType":"FunctionDefinition","src":"47101:1705:164","nodes":[],"body":{"id":85181,"nodeType":"Block","src":"47216:1590:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":85047,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85041,"src":"47234:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":85048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47241:20:164","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":86198,"src":"47234:27:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86165_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":85049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47262:6:164","memberName":"length","nodeType":"MemberAccess","src":"47234:34:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":85050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47272:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"47234:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85052,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77413,"src":"47275:28:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47275:30:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85046,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47226:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47226:80:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85055,"nodeType":"ExpressionStatement","src":"47226:80:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":85056,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85041,"src":"47321:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":85057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47328:20:164","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":86198,"src":"47321:27:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86165_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":85058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47349:6:164","memberName":"length","nodeType":"MemberAccess","src":"47321:34:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":85059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47359:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"47321:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85066,"nodeType":"IfStatement","src":"47317:182:164","trueBody":{"id":85065,"nodeType":"Block","src":"47362:137:164","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":85062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47485:2:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":85061,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"47475:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":85063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47475:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85045,"id":85064,"nodeType":"Return","src":"47468:20:164"}]}},{"assignments":[85071],"declarations":[{"constant":false,"id":85071,"mutability":"mutable","name":"_commitment","nameLocation":"47544:11:164","nodeType":"VariableDeclaration","scope":85181,"src":"47509:46:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":85070,"nodeType":"UserDefinedTypeName","pathNode":{"id":85069,"name":"Gear.ValidatorsCommitment","nameLocations":["47509:4:164","47514:20:164"],"nodeType":"IdentifierPath","referencedDeclaration":86165,"src":"47509:25:164"},"referencedDeclaration":86165,"src":"47509:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":85076,"initialValue":{"baseExpression":{"expression":{"id":85072,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85041,"src":"47558:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":85073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47565:20:164","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":86198,"src":"47558:27:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$86165_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":85075,"indexExpression":{"hexValue":"30","id":85074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47586:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47558:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"47509:79:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":85078,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85071,"src":"47607:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47619:10:164","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":86162,"src":"47607:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":85080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47630:6:164","memberName":"length","nodeType":"MemberAccess","src":"47607:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":85081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47639:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"47607:33:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85083,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77415,"src":"47642:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47642:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85077,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47599:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47599:65:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85086,"nodeType":"ExpressionStatement","src":"47599:65:164"},{"assignments":[85088],"declarations":[{"constant":false,"id":85088,"mutability":"mutable","name":"currentEraIndex","nameLocation":"47737:15:164","nodeType":"VariableDeclaration","scope":85181,"src":"47729:23:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85087,"name":"uint256","nodeType":"ElementaryTypeName","src":"47729:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85100,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":85089,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"47756:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":85090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47762:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"47756:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":85091,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85038,"src":"47774:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47781:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"47774:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":85093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47794:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86258,"src":"47774:29:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"47756:47:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":85095,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"47755:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":85096,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85038,"src":"47807:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47814:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"47807:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"id":85098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47824:3:164","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86360,"src":"47807:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47755:72:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"47729:98:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":85102,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85071,"src":"47846:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47858:8:164","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":86164,"src":"47846:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85104,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85088,"src":"47870:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":85105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47888:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"47870:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47846:43:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85108,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77417,"src":"47891:20:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47891:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85101,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47838:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47838:76:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85111,"nodeType":"ExpressionStatement","src":"47838:76:164"},{"assignments":[85113],"declarations":[{"constant":false,"id":85113,"mutability":"mutable","name":"nextEraStart","nameLocation":"47933:12:164","nodeType":"VariableDeclaration","scope":85181,"src":"47925:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85112,"name":"uint256","nodeType":"ElementaryTypeName","src":"47925:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85124,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":85114,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85038,"src":"47948:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47955:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"47948:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":85116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47968:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":86258,"src":"47948:29:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":85117,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85038,"src":"47980:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47987:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"47980:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"id":85119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47997:3:164","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":86360,"src":"47980:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":85120,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85071,"src":"48003:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48015:8:164","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":86164,"src":"48003:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47980:43:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47948:75:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"47925:98:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":85126,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"48041:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":85127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48047:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"48041:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85128,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85113,"src":"48060:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":85129,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85038,"src":"48075:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48082:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":77264,"src":"48075:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$86365_storage","typeString":"struct Gear.Timelines storage ref"}},"id":85131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48092:8:164","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":86362,"src":"48075:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48060:40:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48041:59:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85134,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77419,"src":"48102:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48102:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85125,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48033:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48033:90:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85137,"nodeType":"ExpressionStatement","src":"48033:90:164"},{"assignments":[85142],"declarations":[{"constant":false,"id":85142,"mutability":"mutable","name":"_validators","nameLocation":"48205:11:164","nodeType":"VariableDeclaration","scope":85181,"src":"48181:35:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":85141,"nodeType":"UserDefinedTypeName","pathNode":{"id":85140,"name":"Gear.Validators","nameLocations":["48181:4:164","48186:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"48181:15:164"},"referencedDeclaration":86107,"src":"48181:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":85147,"initialValue":{"arguments":[{"id":85145,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85038,"src":"48246:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":85143,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"48219:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":85144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48224:21:164","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":87046,"src":"48219:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$77269_storage_ptr_$returns$_t_struct$_Validators_$86107_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":85146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48219:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"48181:72:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":85149,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85142,"src":"48271:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48283:16:164","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":86106,"src":"48271:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":85151,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"48302:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":85152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48308:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"48302:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48271:46:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85154,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77421,"src":"48319:26:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48319:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85148,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48263:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48263:85:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85157,"nodeType":"ExpressionStatement","src":"48263:85:164"},{"expression":{"arguments":[{"id":85159,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85142,"src":"48441:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":85160,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85071,"src":"48466:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48478:22:164","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86154,"src":"48466:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":85162,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85071,"src":"48514:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48526:19:164","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86157,"src":"48514:31:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":85164,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85071,"src":"48559:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48571:33:164","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":86159,"src":"48559:45:164","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":85166,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85071,"src":"48618:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48630:10:164","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":86162,"src":"48618:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":85168,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85113,"src":"48654:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_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":85158,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85419,"src":"48411:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$86107_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$86086_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":85169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48411:265:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85170,"nodeType":"ExpressionStatement","src":"48411:265:164"},{"eventCall":{"arguments":[{"expression":{"id":85172,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85071,"src":"48718:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":85173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48730:8:164","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":86164,"src":"48718:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":85171,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77306,"src":"48692:25:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":85174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48692:47:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85175,"nodeType":"EmitStatement","src":"48687:52:164"},{"expression":{"arguments":[{"id":85178,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85071,"src":"48787:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$86165_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":85176,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87300,"src":"48757:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$87300_$","typeString":"type(library Gear)"}},"id":85177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48762:24:164","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86517,"src":"48757:29:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$86165_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":85179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48757:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85045,"id":85180,"nodeType":"Return","src":"48750:49:164"}]},"documentation":{"id":85035,"nodeType":"StructuredDocumentation","src":"47040:56:164","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"47110:17:164","parameters":{"id":85042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85038,"mutability":"mutable","name":"router","nameLocation":"47144:6:164","nodeType":"VariableDeclaration","scope":85182,"src":"47128:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":85037,"nodeType":"UserDefinedTypeName","pathNode":{"id":85036,"name":"Storage","nameLocations":["47128:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"47128:7:164"},"referencedDeclaration":77269,"src":"47128:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":85041,"mutability":"mutable","name":"_batch","nameLocation":"47182:6:164","nodeType":"VariableDeclaration","scope":85182,"src":"47152:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":85040,"nodeType":"UserDefinedTypeName","pathNode":{"id":85039,"name":"Gear.BatchCommitment","nameLocations":["47152:4:164","47157:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86199,"src":"47152:20:164"},"referencedDeclaration":86199,"src":"47152:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$86199_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"47127:62:164"},"returnParameters":{"id":85045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85044,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85182,"src":"47207:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85043,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47207:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"47206:9:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85302,"nodeType":"FunctionDefinition","src":"48812:1168:164","nodes":[],"body":{"id":85301,"nodeType":"Block","src":"48956:1024:164","nodes":[],"statements":[{"assignments":[85195],"declarations":[{"constant":false,"id":85195,"mutability":"mutable","name":"transitionsLen","nameLocation":"48974:14:164","nodeType":"VariableDeclaration","scope":85301,"src":"48966:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85194,"name":"uint256","nodeType":"ElementaryTypeName","src":"48966:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85198,"initialValue":{"expression":{"id":85196,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85189,"src":"48991:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86357_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":85197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49004:6:164","memberName":"length","nodeType":"MemberAccess","src":"48991:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"48966:44:164"},{"assignments":[85200],"declarations":[{"constant":false,"id":85200,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"49028:19:164","nodeType":"VariableDeclaration","scope":85301,"src":"49020:27:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85199,"name":"uint256","nodeType":"ElementaryTypeName","src":"49020:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85204,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85201,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85195,"src":"49050:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":85202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49067:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"49050:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"49020:49:164"},{"assignments":[85206],"declarations":[{"constant":false,"id":85206,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"49087:23:164","nodeType":"VariableDeclaration","scope":85301,"src":"49079:31:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85205,"name":"uint256","nodeType":"ElementaryTypeName","src":"49079:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85211,"initialValue":{"arguments":[{"id":85209,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85200,"src":"49129:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":85207,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"49113:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":85208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49120:8:164","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62622,"src":"49113:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":85210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49113:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"49079:70:164"},{"assignments":[85213],"declarations":[{"constant":false,"id":85213,"mutability":"mutable","name":"offset","nameLocation":"49167:6:164","nodeType":"VariableDeclaration","scope":85301,"src":"49159:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85212,"name":"uint256","nodeType":"ElementaryTypeName","src":"49159:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85215,"initialValue":{"hexValue":"30","id":85214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49176:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"49159:18:164"},{"body":{"id":85292,"nodeType":"Block","src":"49233:640:164","statements":[{"assignments":[85230],"declarations":[{"constant":false,"id":85230,"mutability":"mutable","name":"transition","nameLocation":"49277:10:164","nodeType":"VariableDeclaration","scope":85292,"src":"49247:40:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":85229,"nodeType":"UserDefinedTypeName","pathNode":{"id":85228,"name":"Gear.StateTransition","nameLocations":["49247:4:164","49252:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86357,"src":"49247:20:164"},"referencedDeclaration":86357,"src":"49247:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":85234,"initialValue":{"baseExpression":{"id":85231,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85189,"src":"49290:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86357_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":85233,"indexExpression":{"id":85232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85217,"src":"49303:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49290:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"49247:58:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":85243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":85236,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85185,"src":"49328:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49335:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"49328:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":85238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49348:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86292,"src":"49328:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":85241,"indexExpression":{"expression":{"id":85239,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85230,"src":"49357:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49368:7:164","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":86323,"src":"49357:18:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49328:48:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":85242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49380:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49328:53:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85244,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77399,"src":"49383:14:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49383:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49320:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49320:80:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85247,"nodeType":"ExpressionStatement","src":"49320:80:164"},{"assignments":[85249],"declarations":[{"constant":false,"id":85249,"mutability":"mutable","name":"value","nameLocation":"49423:5:164","nodeType":"VariableDeclaration","scope":85292,"src":"49415:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85248,"name":"uint128","nodeType":"ElementaryTypeName","src":"49415:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":85251,"initialValue":{"hexValue":"30","id":85250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49431:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"49415:17:164"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":85255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":85252,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85230,"src":"49451:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49462:14:164","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":86335,"src":"49451:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":85254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49480:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49451:30:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":85258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"49485:38:164","subExpression":{"expression":{"id":85256,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85230,"src":"49486:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49497:26:164","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":86338,"src":"49486:37:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"49451:72:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85266,"nodeType":"IfStatement","src":"49447:144:164","trueBody":{"id":85265,"nodeType":"Block","src":"49525:66:164","statements":[{"expression":{"id":85263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85260,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85249,"src":"49543:5:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":85261,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85230,"src":"49551:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49562:14:164","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":86335,"src":"49551:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"49543:33:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":85264,"nodeType":"ExpressionStatement","src":"49543:33:164"}]}},{"assignments":[85268],"declarations":[{"constant":false,"id":85268,"mutability":"mutable","name":"transitionHash","nameLocation":"49613:14:164","nodeType":"VariableDeclaration","scope":85292,"src":"49605:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49605:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":85278,"initialValue":{"arguments":[{"id":85276,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85230,"src":"49695:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":85270,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85230,"src":"49638:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":85271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49649:7:164","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":86323,"src":"49638:18:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85269,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"49630:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$77171_$","typeString":"type(contract IMirror)"}},"id":85272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49630:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$77171","typeString":"contract IMirror"}},"id":85273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49658:22:164","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":77170,"src":"49630:50:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$86357_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":85275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":85274,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85249,"src":"49688:5:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"49630:64:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$86357_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":85277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49630:76:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"49605:101:164"},{"expression":{"arguments":[{"id":85282,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85206,"src":"49746:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85283,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85213,"src":"49771:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85284,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85268,"src":"49779:14:164","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":85279,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62717,"src":"49720:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62717_$","typeString":"type(library Memory)"}},"id":85281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49727:18:164","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62692,"src":"49720:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":85285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49720:74:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85286,"nodeType":"ExpressionStatement","src":"49720:74:164"},{"id":85291,"nodeType":"UncheckedBlock","src":"49808:55:164","statements":[{"expression":{"id":85289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85287,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85213,"src":"49836:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":85288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49846:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"49836:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85290,"nodeType":"ExpressionStatement","src":"49836:12:164"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85220,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85217,"src":"49208:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":85221,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85195,"src":"49212:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"49208:18:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85293,"initializationExpression":{"assignments":[85217],"declarations":[{"constant":false,"id":85217,"mutability":"mutable","name":"i","nameLocation":"49201:1:164","nodeType":"VariableDeclaration","scope":85293,"src":"49193:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85216,"name":"uint256","nodeType":"ElementaryTypeName","src":"49193:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85219,"initialValue":{"hexValue":"30","id":85218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49205:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"49193:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":85224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"49228:3:164","subExpression":{"id":85223,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85217,"src":"49228:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85225,"nodeType":"ExpressionStatement","src":"49228:3:164"},"nodeType":"ForStatement","src":"49188:685:164"},{"expression":{"arguments":[{"id":85296,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85206,"src":"49925:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":85297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49950:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":85298,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85200,"src":"49953:19:164","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":85294,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62943,"src":"49890:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62943_$","typeString":"type(library Hashes)"}},"id":85295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49897:27:164","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62898,"src":"49890:34:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":85299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49890:83:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85193,"id":85300,"nodeType":"Return","src":"49883:90:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"48821:18:164","parameters":{"id":85190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85185,"mutability":"mutable","name":"router","nameLocation":"48856:6:164","nodeType":"VariableDeclaration","scope":85302,"src":"48840:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":85184,"nodeType":"UserDefinedTypeName","pathNode":{"id":85183,"name":"Storage","nameLocations":["48840:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"48840:7:164"},"referencedDeclaration":77269,"src":"48840:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":85189,"mutability":"mutable","name":"_transitions","nameLocation":"48896:12:164","nodeType":"VariableDeclaration","scope":85302,"src":"48864:44:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86357_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":85187,"nodeType":"UserDefinedTypeName","pathNode":{"id":85186,"name":"Gear.StateTransition","nameLocations":["48864:4:164","48869:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86357,"src":"48864:20:164"},"referencedDeclaration":86357,"src":"48864:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$86357_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":85188,"nodeType":"ArrayTypeName","src":"48864:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$86357_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"48839:70:164"},"returnParameters":{"id":85193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85302,"src":"48943:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48943:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48942:9:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85419,"nodeType":"FunctionDefinition","src":"49986:1539:164","nodes":[],"body":{"id":85418,"nodeType":"Block","src":"50307:1218:164","nodes":[],"statements":[{"condition":{"id":85320,"name":"_hasAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85307,"src":"50321:23:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85349,"nodeType":"IfStatement","src":"50317:752:164","trueBody":{"id":85348,"nodeType":"Block","src":"50346:723:164","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":85324,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85310,"src":"50751:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":85325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50775:1:164","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":86083,"src":"50751:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":85326,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85310,"src":"50778:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":85327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50802:1:164","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":86085,"src":"50778:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":85322,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62425,"src":"50728:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$62425_$","typeString":"type(library FROST)"}},"id":85323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"50734:16:164","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":62094,"src":"50728:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":85328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50728:76:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85329,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77336,"src":"50822:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50822:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85321,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"50703:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50703:166:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85332,"nodeType":"ExpressionStatement","src":"50703:166:164"},{"expression":{"id":85337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":85333,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85305,"src":"50883:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"50895:19:164","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":86091,"src":"50883:31:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85336,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85310,"src":"50917:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"50883:57:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":85338,"nodeType":"ExpressionStatement","src":"50883:57:164"},{"expression":{"id":85346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":85339,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85305,"src":"50954:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"50966:40:164","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":86094,"src":"50954:52:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":85344,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85312,"src":"51023:34:164","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":85342,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87756,"src":"51009:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$87756_$","typeString":"type(library SSTORE2)"}},"id":85343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51017:5:164","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":87612,"src":"51009:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":85345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51009:49:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"50954:104:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":85347,"nodeType":"ExpressionStatement","src":"50954:104:164"}]}},{"body":{"id":85377,"nodeType":"Block","src":"51132:114:164","statements":[{"assignments":[85363],"declarations":[{"constant":false,"id":85363,"mutability":"mutable","name":"_validator","nameLocation":"51154:10:164","nodeType":"VariableDeclaration","scope":85377,"src":"51146:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85362,"name":"address","nodeType":"ElementaryTypeName","src":"51146:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":85368,"initialValue":{"baseExpression":{"expression":{"id":85364,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85305,"src":"51167:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51179:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":86103,"src":"51167:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":85367,"indexExpression":{"id":85366,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85351,"src":"51184:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"51167:19:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"51146:40:164"},{"expression":{"id":85375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":85369,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85305,"src":"51200:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51212:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":86099,"src":"51200:15:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":85373,"indexExpression":{"id":85371,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85363,"src":"51216:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"51200:27:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":85374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"51230:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"51200:35:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85376,"nodeType":"ExpressionStatement","src":"51200:35:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85354,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85351,"src":"51098:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":85355,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85305,"src":"51102:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51114:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":86103,"src":"51102:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":85357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51119:6:164","memberName":"length","nodeType":"MemberAccess","src":"51102:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"51098:27:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85378,"initializationExpression":{"assignments":[85351],"declarations":[{"constant":false,"id":85351,"mutability":"mutable","name":"i","nameLocation":"51091:1:164","nodeType":"VariableDeclaration","scope":85378,"src":"51083:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85350,"name":"uint256","nodeType":"ElementaryTypeName","src":"51083:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85353,"initialValue":{"hexValue":"30","id":85352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51095:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"51083:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":85360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"51127:3:164","subExpression":{"id":85359,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85351,"src":"51127:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85361,"nodeType":"ExpressionStatement","src":"51127:3:164"},"nodeType":"ForStatement","src":"51078:168:164"},{"body":{"id":85404,"nodeType":"Block","src":"51307:111:164","statements":[{"assignments":[85391],"declarations":[{"constant":false,"id":85391,"mutability":"mutable","name":"_validator","nameLocation":"51329:10:164","nodeType":"VariableDeclaration","scope":85404,"src":"51321:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85390,"name":"address","nodeType":"ElementaryTypeName","src":"51321:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":85395,"initialValue":{"baseExpression":{"id":85392,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85315,"src":"51342:14:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":85394,"indexExpression":{"id":85393,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85380,"src":"51357:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"51342:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"51321:38:164"},{"expression":{"id":85402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":85396,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85305,"src":"51373:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51385:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":86099,"src":"51373:15:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":85400,"indexExpression":{"id":85398,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85391,"src":"51389:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"51373:27:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":85401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"51403:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"51373:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85403,"nodeType":"ExpressionStatement","src":"51373:34:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85380,"src":"51275:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":85384,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85315,"src":"51279:14:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":85385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51294:6:164","memberName":"length","nodeType":"MemberAccess","src":"51279:21:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"51275:25:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85405,"initializationExpression":{"assignments":[85380],"declarations":[{"constant":false,"id":85380,"mutability":"mutable","name":"i","nameLocation":"51268:1:164","nodeType":"VariableDeclaration","scope":85405,"src":"51260:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85379,"name":"uint256","nodeType":"ElementaryTypeName","src":"51260:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":85382,"initialValue":{"hexValue":"30","id":85381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51272:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"51260:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":85388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"51302:3:164","subExpression":{"id":85387,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85380,"src":"51302:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85389,"nodeType":"ExpressionStatement","src":"51302:3:164"},"nodeType":"ForStatement","src":"51255:163:164"},{"expression":{"id":85410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":85406,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85305,"src":"51427:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"51439:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":86103,"src":"51427:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85409,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85315,"src":"51446:14:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"51427:33:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":85411,"nodeType":"ExpressionStatement","src":"51427:33:164"},{"expression":{"id":85416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":85412,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85305,"src":"51470:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":85414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"51482:16:164","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":86106,"src":"51470:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85415,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85317,"src":"51501:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"51470:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85417,"nodeType":"ExpressionStatement","src":"51470:48:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"49995:16:164","parameters":{"id":85318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85305,"mutability":"mutable","name":"_validators","nameLocation":"50045:11:164","nodeType":"VariableDeclaration","scope":85419,"src":"50021:35:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":85304,"nodeType":"UserDefinedTypeName","pathNode":{"id":85303,"name":"Gear.Validators","nameLocations":["50021:4:164","50026:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":86107,"src":"50021:15:164"},"referencedDeclaration":86107,"src":"50021:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$86107_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":85307,"mutability":"mutable","name":"_hasAggregatedPublicKey","nameLocation":"50071:23:164","nodeType":"VariableDeclaration","scope":85419,"src":"50066:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85306,"name":"bool","nodeType":"ElementaryTypeName","src":"50066:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":85310,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"50136:23:164","nodeType":"VariableDeclaration","scope":85419,"src":"50104:55:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":85309,"nodeType":"UserDefinedTypeName","pathNode":{"id":85308,"name":"Gear.AggregatedPublicKey","nameLocations":["50104:4:164","50109:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":86086,"src":"50104:24:164"},"referencedDeclaration":86086,"src":"50104:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$86086_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":85312,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"50182:34:164","nodeType":"VariableDeclaration","scope":85419,"src":"50169:47:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85311,"name":"bytes","nodeType":"ElementaryTypeName","src":"50169:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":85315,"mutability":"mutable","name":"_newValidators","nameLocation":"50243:14:164","nodeType":"VariableDeclaration","scope":85419,"src":"50226:31:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":85313,"name":"address","nodeType":"ElementaryTypeName","src":"50226:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":85314,"nodeType":"ArrayTypeName","src":"50226:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":85317,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"50275:17:164","nodeType":"VariableDeclaration","scope":85419,"src":"50267:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85316,"name":"uint256","nodeType":"ElementaryTypeName","src":"50267:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50011:287:164"},"returnParameters":{"id":85319,"nodeType":"ParameterList","parameters":[],"src":"50307:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85432,"nodeType":"FunctionDefinition","src":"51531:192:164","nodes":[],"body":{"id":85431,"nodeType":"Block","src":"51596:127:164","nodes":[],"statements":[{"assignments":[85426],"declarations":[{"constant":false,"id":85426,"mutability":"mutable","name":"slot","nameLocation":"51614:4:164","nodeType":"VariableDeclaration","scope":85431,"src":"51606:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51606:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":85429,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":85427,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85444,"src":"51621:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":85428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51621:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"51606:32:164"},{"AST":{"nativeSrc":"51674:43:164","nodeType":"YulBlock","src":"51674:43:164","statements":[{"nativeSrc":"51688:19:164","nodeType":"YulAssignment","src":"51688:19:164","value":{"name":"slot","nativeSrc":"51703:4:164","nodeType":"YulIdentifier","src":"51703:4:164"},"variableNames":[{"name":"router.slot","nativeSrc":"51688:11:164","nodeType":"YulIdentifier","src":"51688:11:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":85423,"isOffset":false,"isSlot":true,"src":"51688:11:164","suffix":"slot","valueSize":1},{"declaration":85426,"isOffset":false,"isSlot":false,"src":"51703:4:164","valueSize":1}],"flags":["memory-safe"],"id":85430,"nodeType":"InlineAssembly","src":"51649:68:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"51540:7:164","parameters":{"id":85420,"nodeType":"ParameterList","parameters":[],"src":"51547:2:164"},"returnParameters":{"id":85424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85423,"mutability":"mutable","name":"router","nameLocation":"51588:6:164","nodeType":"VariableDeclaration","scope":85432,"src":"51572:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":85422,"nodeType":"UserDefinedTypeName","pathNode":{"id":85421,"name":"Storage","nameLocations":["51572:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"51572:7:164"},"referencedDeclaration":77269,"src":"51572:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"51571:24:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":85444,"nodeType":"FunctionDefinition","src":"51729:128:164","nodes":[],"body":{"id":85443,"nodeType":"Block","src":"51787:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":85439,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82435,"src":"51831:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":85437,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"51804:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":85438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51816:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"51804:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":85440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51804:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":85441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51845:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"51804:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85436,"id":85442,"nodeType":"Return","src":"51797:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"51738:15:164","parameters":{"id":85433,"nodeType":"ParameterList","parameters":[],"src":"51753:2:164"},"returnParameters":{"id":85436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85444,"src":"51778:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51778:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"51777:9:164"},"scope":85532,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":85472,"nodeType":"FunctionDefinition","src":"51863:240:164","nodes":[],"body":{"id":85471,"nodeType":"Block","src":"51931:172:164","nodes":[],"statements":[{"assignments":[85452],"declarations":[{"constant":false,"id":85452,"mutability":"mutable","name":"slot","nameLocation":"51949:4:164","nodeType":"VariableDeclaration","scope":85471,"src":"51941:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51941:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":85457,"initialValue":{"arguments":[{"id":85455,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85446,"src":"51983:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":85453,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"51956:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":85454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51971:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"51956:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":85456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51956:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"51941:52:164"},{"expression":{"id":85465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":85461,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82435,"src":"52030:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":85458,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"52003:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":85460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"52015:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"52003:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":85462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52003:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":85463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"52044:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"52003:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85464,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85452,"src":"52052:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"52003:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":85466,"nodeType":"ExpressionStatement","src":"52003:53:164"},{"eventCall":{"arguments":[{"id":85468,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85452,"src":"52091:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":85467,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77325,"src":"52072:18:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":85469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52072:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85470,"nodeType":"EmitStatement","src":"52067:29:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":85449,"kind":"modifierInvocation","modifierName":{"id":85448,"name":"onlyOwner","nameLocations":["51921:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"51921:9:164"},"nodeType":"ModifierInvocation","src":"51921:9:164"}],"name":"_setStorageSlot","nameLocation":"51872:15:164","parameters":{"id":85447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85446,"mutability":"mutable","name":"namespace","nameLocation":"51902:9:164","nodeType":"VariableDeclaration","scope":85472,"src":"51888:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85445,"name":"string","nodeType":"ElementaryTypeName","src":"51888:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51887:25:164"},"returnParameters":{"id":85450,"nodeType":"ParameterList","parameters":[],"src":"51931:0:164"},"scope":85532,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":85531,"nodeType":"FunctionDefinition","src":"52251:396:164","nodes":[],"body":{"id":85530,"nodeType":"Block","src":"52292:355:164","nodes":[],"statements":[{"assignments":[85480],"declarations":[{"constant":false,"id":85480,"mutability":"mutable","name":"router","nameLocation":"52318:6:164","nodeType":"VariableDeclaration","scope":85530,"src":"52302:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":85479,"nodeType":"UserDefinedTypeName","pathNode":{"id":85478,"name":"Storage","nameLocations":["52302:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77269,"src":"52302:7:164"},"referencedDeclaration":77269,"src":"52302:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":85483,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":85481,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85432,"src":"52327:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$77269_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":85482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52327:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"52302:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":85492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":85485,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85480,"src":"52354:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"52361:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":77244,"src":"52354:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$86259_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":85487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"52374:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"52354:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":85490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52390:1:164","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":85489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"52382:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":85488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52382:7:164","typeDescriptions":{}}},"id":85491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52382:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"52354:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85493,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"52394:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52394:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85484,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"52346:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52346:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85496,"nodeType":"ExpressionStatement","src":"52346:82:164"},{"assignments":[85498],"declarations":[{"constant":false,"id":85498,"mutability":"mutable","name":"value","nameLocation":"52447:5:164","nodeType":"VariableDeclaration","scope":85530,"src":"52439:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85497,"name":"uint128","nodeType":"ElementaryTypeName","src":"52439:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":85504,"initialValue":{"arguments":[{"expression":{"id":85501,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"52463:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"52467:5:164","memberName":"value","nodeType":"MemberAccess","src":"52463:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":85500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"52455:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":85499,"name":"uint128","nodeType":"ElementaryTypeName","src":"52455:7:164","typeDescriptions":{}}},"id":85503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52455:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"52439:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":85508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85506,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85498,"src":"52491:5:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":85507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52499:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"52491:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85509,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77425,"src":"52502:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52502:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85505,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"52483:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52483:39:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85512,"nodeType":"ExpressionStatement","src":"52483:39:164"},{"assignments":[85514],"declarations":[{"constant":false,"id":85514,"mutability":"mutable","name":"actorId","nameLocation":"52541:7:164","nodeType":"VariableDeclaration","scope":85530,"src":"52533:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85513,"name":"address","nodeType":"ElementaryTypeName","src":"52533:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":85517,"initialValue":{"expression":{"id":85515,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"52551:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"52555:6:164","memberName":"sender","nodeType":"MemberAccess","src":"52551:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"52533:28:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":85525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":85519,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85480,"src":"52579:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$77269_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":85520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"52586:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":77268,"src":"52579:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$86311_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":85521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"52599:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":86292,"src":"52579:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":85523,"indexExpression":{"id":85522,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85514,"src":"52608:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"52579:37:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":85524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52620:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"52579:42:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":85526,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77399,"src":"52623:14:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":85527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52623:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":85518,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"52571:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":85528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52571:69:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85529,"nodeType":"ExpressionStatement","src":"52571:69:164"}]},"documentation":{"id":85473,"nodeType":"StructuredDocumentation","src":"52109:137:164","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":85476,"kind":"modifierInvocation","modifierName":{"id":85475,"name":"whenNotPaused","nameLocations":["52278:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"52278:13:164"},"nodeType":"ModifierInvocation","src":"52278:13:164"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":85474,"nodeType":"ParameterList","parameters":[],"src":"52258:2:164"},"returnParameters":{"id":85477,"nodeType":"ParameterList","parameters":[],"src":"52292:0:164"},"scope":85532,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":82419,"name":"IRouter","nameLocations":["1576:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":77796,"src":"1576:7:164"},"id":82420,"nodeType":"InheritanceSpecifier","src":"1576:7:164"},{"baseName":{"id":82421,"name":"OwnableUpgradeable","nameLocations":["1589:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"1589:18:164"},"id":82422,"nodeType":"InheritanceSpecifier","src":"1589:18:164"},{"baseName":{"id":82423,"name":"PausableUpgradeable","nameLocations":["1613:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":20737,"src":"1613:19:164"},"id":82424,"nodeType":"InheritanceSpecifier","src":"1613:19:164"},{"baseName":{"id":82425,"name":"EIP712Upgradeable","nameLocations":["1638:17:164"],"nodeType":"IdentifierPath","referencedDeclaration":20974,"src":"1638:17:164"},"id":82426,"nodeType":"InheritanceSpecifier","src":"1638:17:164"},{"baseName":{"id":82427,"name":"NoncesUpgradeable","nameLocations":["1661:17:164"],"nodeType":"IdentifierPath","referencedDeclaration":20577,"src":"1661:17:164"},"id":82428,"nodeType":"InheritanceSpecifier","src":"1661:17:164"},{"baseName":{"id":82429,"name":"ReentrancyGuardTransient","nameLocations":["1684:24:164"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"1684:24:164"},"id":82430,"nodeType":"InheritanceSpecifier","src":"1684:24:164"},{"baseName":{"id":82431,"name":"UUPSUpgradeable","nameLocations":["1714:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"1714:15:164"},"id":82432,"nodeType":"InheritanceSpecifier","src":"1714:15:164"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[85532,2079,376,6594,20577,20974,366,20737,19465,20363,1913,77796],"name":"Router","nameLocation":"1562:6:164","scope":85533,"usedErrors":[995,1008,1662,1665,1936,1941,3201,6168,6514,8568,8573,8578,11979,19301,19306,20480,20616,20619,77328,77331,77334,77336,77339,77342,77345,77348,77351,77354,77361,77370,77375,77382,77385,77387,77389,77391,77393,77395,77397,77399,77401,77403,77405,77407,77409,77411,77413,77415,77417,77419,77421,77423,77425,86062,86065,86068,86071,86074,86077,86080],"usedEvents":[324,346,1670,19312,20608,20613,77274,77279,77284,77289,77296,77301,77306,77313,77320,77325]}],"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/WrappedVara.json b/ethexe/ethereum/abi/WrappedVara.json index 07c5116679e..695c266ce7a 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":"0x60a080604052346100c257306080525f5160206124415f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161237a90816100c7823960805181818161153d01526116170152f35b6001600160401b0319166001600160401b039081175f5160206124415f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146118b1578063095ea7b31461188b57806318160ddd1461186257806323b872dd1461182a578063313ce5671461180f5780633644e515146117ed57806340c10f19146117b057806342966c68146117935780634f1ef2861461159157806352d1902d1461152b5780636c2eb35014610e3857806370a0823114610df4578063715018a614610d8d57806379cc679014610d5d5780637ecebe0014610d0757806384b0196e14610c515780638da5cb5b14610c1d57806395d89b4114610b27578063a9059cbb14610af6578063ad3cb1cc14610aab578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611992565b610145611e1e565b611c18565b005b5f80fd5b3461014c57604036600319011261014c57610169611992565b61017a6101746119a8565b91611be0565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611992565b6101b86119a8565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e0826119be565b51902061028461202c565b906040519161190160f01b83526002830152602282015260c43591604260a43592206120cc565b90929192612159565b6001600160a01b03168481036102cf575061014a9350611f07565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611992565b5f51602061235a5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610aa3575b6001149081610a99575b159081610a90575b50610a81578160016001600160401b03195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610a4c575b61038d611b93565b91610396611bbd565b9161039f6120a1565b6103a76120a1565b83516001600160401b038111610738576103ce5f51602061225a5f395f51905f52546119df565b601f81116109d2575b50602094601f8211600114610957579481929394955f9261094c575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b82516001600160401b0381116107385761043b5f5160206122ba5f395f51905f52546119df565b601f81116108d2575b506020601f821160011461085757819293945f9261084c575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b6104866120a1565b61048e6120a1565b6104966120a1565b61049f81611c18565b6104a7611b93565b916104b06120a1565b604051916104bf6040846119be565b60018352603160f81b60208401526104d56120a1565b83516001600160401b038111610738576104fc5f51602061229a5f395f51905f52546119df565b601f81116107d2575b50602094601f8211600114610757579481929394955f9261074c575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b82516001600160401b038111610738576105695f51602061231a5f395f51905f52546119df565b601f81116106be575b506020601f821160011461064357819293945f92610638575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b6001600160a01b0381161561062557670de0b6b3a76400006105cd91611f6a565b6105d357005b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061231a5f395f51905f525f52805f20915f5b8181106106a65750958360019596971061068e575b505050811b015f51602061231a5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610674565b9192602060018192868b01518155019401920161065f565b81811115610572575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610730575b81601f9101920160051c03905f5b828110610723575050610572565b5f82820155600101610715565b5f9150610707565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f51602061229a5f395f51905f525f52805f20915f5b8881106107ba575083600195969798106107a2575b505050811b015f51602061229a5f395f51905f5255610542565b01515f1960f88460031b161c19169055858080610788565b91926020600181928685015181550194019201610773565b81811115610505575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610844575b81601f9101920160051c03905f5b828110610837575050610505565b5f82820155600101610829565b5f915061081b565b01519050848061045d565b601f198216905f5160206122ba5f395f51905f525f52805f20915f5b8181106108ba575095836001959697106108a2575b505050811b015f5160206122ba5f395f51905f525561047e565b01515f1960f88460031b161c19169055848080610888565b9192602060018192868b015181550194019201610873565b81811115610444575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610944575b81601f9101920160051c03905f5b828110610937575050610444565b5f82820155600101610929565b5f915061091b565b0151905085806103f3565b601f198216955f51602061225a5f395f51905f525f52805f20915f5b8881106109ba575083600195969798106109a2575b505050811b015f51602061225a5f395f51905f5255610414565b01515f1960f88460031b161c19169055858080610988565b91926020600181928685015181550194019201610973565b818111156103d7575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a44575b81601f9101920160051c03905f5b828110610a375750506103d7565b5f82820155600101610a29565b5f9150610a1b565b6801000000000000000060ff60401b195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610af2604051610acc6040826119be565b60058152640352e302e360dc1b602082015260405191829160208352602083019061196e565b0390f35b3461014c57604036600319011261014c57610b1c610b12611992565b6024359033611d4d565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206122ba5f395f51905f5254610b53816119df565b8084529060018116908115610bf95750600114610b8f575b610af283610b7b818503826119be565b60405191829160208352602083019061196e565b5f5160206122ba5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bdf57509091508101602001610b7b610b6b565b919260018160209254838588010152019101909291610bc7565b60ff191660208086019190915291151560051b84019091019150610b7b9050610b6b565b3461014c575f36600319011261014c575f5160206122da5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c57610cab610c6c611a17565b610c74611ae6565b6020610cb960405192610c8783856119be565b5f84525f368137604051958695600f60f81b875260e08588015260e087019061196e565b90858203604087015261196e565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610cf057505050500390f35b835185528695509381019392810192600101610ce1565b3461014c57602036600319011261014c57610d20611992565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610d79611992565b60243590610d88823383611c89565b611e51565b3461014c575f36600319011261014c57610da5611e1e565b5f5160206122da5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610e15611992565b165f525f51602061227a5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610e50611e1e565b5f51602061235a5f395f51905f525460ff8160401c16908115611516575b50610a81575f51602061235a5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610ea4611b93565b610eac611bbd565b610eb46120a1565b610ebc6120a1565b81516001600160401b03811161073857610ee35f51602061225a5f395f51905f52546119df565b601f811161149c575b50602092601f821160011461142357928192935f92611418575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b80516001600160401b03811161073857610f4e5f5160206122ba5f395f51905f52546119df565b601f811161139e575b50602091601f8211600114611326579181925f9261131b575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b610f996120a1565b5f5160206122da5f395f51905f5254610fc5906001600160a01b0316610fbd6120a1565b6101456120a1565b610fcd611b93565b610fd56120a1565b604051610fe36040826119be565b60018152603160f81b6020820152610ff96120a1565b81516001600160401b038111610738576110205f51602061229a5f395f51905f52546119df565b601f81116112a1575b50602092601f821160011461122857928192935f9261121d575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b80516001600160401b0381116107385761108b5f51602061231a5f395f51905f52546119df565b601f81116111a3575b50602091601f821160011461112b579181925f92611120575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b0151905082806110ad565b601f198216925f51602061231a5f395f51905f525f52805f20915f5b85811061118b57508360019510611173575b505050811b015f51602061231a5f395f51905f52556110ce565b01515f1960f88460031b161c19169055828080611159565b91926020600181928685015181550194019201611147565b81811115611094575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410611215575b81601f9101920160051c03905f5b828110611208575050611094565b5f828201556001016111fa565b5f91506111ec565b015190508380611043565b601f198216935f51602061229a5f395f51905f525f52805f20915f5b8681106112895750836001959610611271575b505050811b015f51602061229a5f395f51905f5255611064565b01515f1960f88460031b161c19169055838080611257565b91926020600181928685015181550194019201611244565b81811115611029575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410611313575b81601f9101920160051c03905f5b828110611306575050611029565b5f828201556001016112f8565b5f91506112ea565b015190508280610f70565b601f198216925f5160206122ba5f395f51905f525f52805f20915f5b8581106113865750836001951061136e575b505050811b015f5160206122ba5f395f51905f5255610f91565b01515f1960f88460031b161c19169055828080611354565b91926020600181928685015181550194019201611342565b81811115610f57575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410611410575b81601f9101920160051c03905f5b828110611403575050610f57565b5f828201556001016113f5565b5f91506113e7565b015190508380610f06565b601f198216935f51602061225a5f395f51905f525f52805f20915f5b868110611484575083600195961061146c575b505050811b015f51602061225a5f395f51905f5255610f27565b01515f1960f88460031b161c19169055838080611452565b9192602060018192868501518155019401920161143f565b81811115610eec575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab06020841061150e575b81601f9101920160051c03905f5b828110611501575050610eec565b5f828201556001016114f3565b5f91506114e5565b600291506001600160401b0316101581610e6e565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036115825760206040515f51602061233a5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c576115a5611992565b602435906001600160401b03821161014c573660238301121561014c5781600401356001600160401b03811161073857604051926115ed601f8301601f1916602001856119be565b818452366024838301011161014c57815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611771575b506115825761164f611e1e565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f918161173d575b506116915783634c9c8ce360e01b5f5260045260245ffd5b805f51602061233a5f395f51905f5285920361172b5750823b15611719575f51602061233a5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156117015761014a916121cd565b50503461170a57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611769575b81611759602093836119be565b8101031261014c57519085611679565b3d915061174c565b5f51602061233a5f395f51905f52546001600160a01b03161415905083611642565b3461014c57602036600319011261014c5761014a60043533611e51565b3461014c57604036600319011261014c576117c9611992565b6117d1611e1e565b6001600160a01b038116156106255761014a9060243590611f6a565b3461014c575f36600319011261014c57602061180761202c565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b1c611846611992565b61184e6119a8565b6044359161185d833383611c89565b611d4d565b3461014c575f36600319011261014c5760205f5160206122fa5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b1c6118a7611992565b6024359033611f07565b3461014c575f36600319011261014c576040515f5f51602061225a5f395f51905f52546118dd816119df565b8084529060018116908115610bf9575060011461190457610af283610b7b818503826119be565b5f51602061225a5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b80821061195457509091508101602001610b7b610b6b565b91926001816020925483858801015201910190929161193c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761073857604052565b90600182811c92168015611a0d575b60208310146119f957565b634e487b7160e01b5f52602260045260245ffd5b91607f16916119ee565b604051905f825f51602061229a5f395f51905f525491611a36836119df565b8083529260018116908115611ac75750600114611a5c575b611a5a925003836119be565b565b505f51602061229a5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611aab575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611a93565b60209250611a5a94915060ff191682840152151560051b820101611a4e565b604051905f825f51602061231a5f395f51905f525491611b05836119df565b8083529260018116908115611ac75750600114611b2857611a5a925003836119be565b505f51602061231a5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b77575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611b5f565b60405190611ba26040836119be565b600c82526b57726170706564205661726160a01b6020830152565b60405190611bcc6040836119be565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611c76575f5160206122da5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611c9483611be0565b60018060a01b0382165f5260205260405f2054925f198410611cb7575b50505050565b828410611d2a576001600160a01b03811615611d17576001600160a01b03821615611d0457611ce590611be0565b9060018060a01b03165f5260205260405f20910390555f808080611cb1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611e0b576001600160a01b031691821561062557815f525f51602061227a5f395f51905f5260205260405f2054818110611df257817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f51602061227a5f395f51905f5284520360405f2055845f525f51602061227a5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f5160206122da5f395f51905f52546001600160a01b03163303611e3e57565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611e0b57805f525f51602061227a5f395f51905f5260205260405f2054838110611eed576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f51602061227a5f395f51905f528452036040862055805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611d17576001600160a01b0316928315611d04577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591611f56602092611be0565b855f5282528060405f2055604051908152a3565b5f5160206122fa5f395f51905f525490828201809211612018575f5160206122fa5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060209084611ff657805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f52555b604051908152a3565b8484525f51602061227a5f395f51905f52825260408420818154019055611fed565b634e487b7160e01b5f52601160045260245ffd5b612034611a17565b60208151910120612043611ae6565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261209b60c0826119be565b51902090565b60ff5f51602061235a5f395f51905f525460401c16156120bd57565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161214e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612143575f516001600160a01b0381161561213957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156121b9578061216b575050565b600181036121825763f645eedf60e01b5f5260045ffd5b6002810361219d575063fce698f760e01b5f5260045260245ffd5b6003146121a75750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b905f8091602081519101845af48080612246575b156122015750506040513d81523d5f602083013e60203d82010160405290565b1561222657639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15612237576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806121e15750813b15156121e156fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1363:2191:165:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;7983:34:18;7979:146;;-1:-1:-1;1363:2191:165;;;;;;;;1076:13:19;1363:2191:165;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;1363:2191:165;-1:-1:-1;;;;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;8085:29:18;;1363:2191:165;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;1363:2191:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146118b1578063095ea7b31461188b57806318160ddd1461186257806323b872dd1461182a578063313ce5671461180f5780633644e515146117ed57806340c10f19146117b057806342966c68146117935780634f1ef2861461159157806352d1902d1461152b5780636c2eb35014610e3857806370a0823114610df4578063715018a614610d8d57806379cc679014610d5d5780637ecebe0014610d0757806384b0196e14610c515780638da5cb5b14610c1d57806395d89b4114610b27578063a9059cbb14610af6578063ad3cb1cc14610aab578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611992565b610145611e1e565b611c18565b005b5f80fd5b3461014c57604036600319011261014c57610169611992565b61017a6101746119a8565b91611be0565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611992565b6101b86119a8565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e0826119be565b51902061028461202c565b906040519161190160f01b83526002830152602282015260c43591604260a43592206120cc565b90929192612159565b6001600160a01b03168481036102cf575061014a9350611f07565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611992565b5f51602061235a5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610aa3575b6001149081610a99575b159081610a90575b50610a81578160016001600160401b03195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610a4c575b61038d611b93565b91610396611bbd565b9161039f6120a1565b6103a76120a1565b83516001600160401b038111610738576103ce5f51602061225a5f395f51905f52546119df565b601f81116109d2575b50602094601f8211600114610957579481929394955f9261094c575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b82516001600160401b0381116107385761043b5f5160206122ba5f395f51905f52546119df565b601f81116108d2575b506020601f821160011461085757819293945f9261084c575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b6104866120a1565b61048e6120a1565b6104966120a1565b61049f81611c18565b6104a7611b93565b916104b06120a1565b604051916104bf6040846119be565b60018352603160f81b60208401526104d56120a1565b83516001600160401b038111610738576104fc5f51602061229a5f395f51905f52546119df565b601f81116107d2575b50602094601f8211600114610757579481929394955f9261074c575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b82516001600160401b038111610738576105695f51602061231a5f395f51905f52546119df565b601f81116106be575b506020601f821160011461064357819293945f92610638575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b6001600160a01b0381161561062557670de0b6b3a76400006105cd91611f6a565b6105d357005b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061231a5f395f51905f525f52805f20915f5b8181106106a65750958360019596971061068e575b505050811b015f51602061231a5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610674565b9192602060018192868b01518155019401920161065f565b81811115610572575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610730575b81601f9101920160051c03905f5b828110610723575050610572565b5f82820155600101610715565b5f9150610707565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f51602061229a5f395f51905f525f52805f20915f5b8881106107ba575083600195969798106107a2575b505050811b015f51602061229a5f395f51905f5255610542565b01515f1960f88460031b161c19169055858080610788565b91926020600181928685015181550194019201610773565b81811115610505575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610844575b81601f9101920160051c03905f5b828110610837575050610505565b5f82820155600101610829565b5f915061081b565b01519050848061045d565b601f198216905f5160206122ba5f395f51905f525f52805f20915f5b8181106108ba575095836001959697106108a2575b505050811b015f5160206122ba5f395f51905f525561047e565b01515f1960f88460031b161c19169055848080610888565b9192602060018192868b015181550194019201610873565b81811115610444575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610944575b81601f9101920160051c03905f5b828110610937575050610444565b5f82820155600101610929565b5f915061091b565b0151905085806103f3565b601f198216955f51602061225a5f395f51905f525f52805f20915f5b8881106109ba575083600195969798106109a2575b505050811b015f51602061225a5f395f51905f5255610414565b01515f1960f88460031b161c19169055858080610988565b91926020600181928685015181550194019201610973565b818111156103d7575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a44575b81601f9101920160051c03905f5b828110610a375750506103d7565b5f82820155600101610a29565b5f9150610a1b565b6801000000000000000060ff60401b195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610af2604051610acc6040826119be565b60058152640352e302e360dc1b602082015260405191829160208352602083019061196e565b0390f35b3461014c57604036600319011261014c57610b1c610b12611992565b6024359033611d4d565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206122ba5f395f51905f5254610b53816119df565b8084529060018116908115610bf95750600114610b8f575b610af283610b7b818503826119be565b60405191829160208352602083019061196e565b5f5160206122ba5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bdf57509091508101602001610b7b610b6b565b919260018160209254838588010152019101909291610bc7565b60ff191660208086019190915291151560051b84019091019150610b7b9050610b6b565b3461014c575f36600319011261014c575f5160206122da5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c57610cab610c6c611a17565b610c74611ae6565b6020610cb960405192610c8783856119be565b5f84525f368137604051958695600f60f81b875260e08588015260e087019061196e565b90858203604087015261196e565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610cf057505050500390f35b835185528695509381019392810192600101610ce1565b3461014c57602036600319011261014c57610d20611992565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610d79611992565b60243590610d88823383611c89565b611e51565b3461014c575f36600319011261014c57610da5611e1e565b5f5160206122da5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610e15611992565b165f525f51602061227a5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610e50611e1e565b5f51602061235a5f395f51905f525460ff8160401c16908115611516575b50610a81575f51602061235a5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610ea4611b93565b610eac611bbd565b610eb46120a1565b610ebc6120a1565b81516001600160401b03811161073857610ee35f51602061225a5f395f51905f52546119df565b601f811161149c575b50602092601f821160011461142357928192935f92611418575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b80516001600160401b03811161073857610f4e5f5160206122ba5f395f51905f52546119df565b601f811161139e575b50602091601f8211600114611326579181925f9261131b575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b610f996120a1565b5f5160206122da5f395f51905f5254610fc5906001600160a01b0316610fbd6120a1565b6101456120a1565b610fcd611b93565b610fd56120a1565b604051610fe36040826119be565b60018152603160f81b6020820152610ff96120a1565b81516001600160401b038111610738576110205f51602061229a5f395f51905f52546119df565b601f81116112a1575b50602092601f821160011461122857928192935f9261121d575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b80516001600160401b0381116107385761108b5f51602061231a5f395f51905f52546119df565b601f81116111a3575b50602091601f821160011461112b579181925f92611120575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b0151905082806110ad565b601f198216925f51602061231a5f395f51905f525f52805f20915f5b85811061118b57508360019510611173575b505050811b015f51602061231a5f395f51905f52556110ce565b01515f1960f88460031b161c19169055828080611159565b91926020600181928685015181550194019201611147565b81811115611094575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410611215575b81601f9101920160051c03905f5b828110611208575050611094565b5f828201556001016111fa565b5f91506111ec565b015190508380611043565b601f198216935f51602061229a5f395f51905f525f52805f20915f5b8681106112895750836001959610611271575b505050811b015f51602061229a5f395f51905f5255611064565b01515f1960f88460031b161c19169055838080611257565b91926020600181928685015181550194019201611244565b81811115611029575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410611313575b81601f9101920160051c03905f5b828110611306575050611029565b5f828201556001016112f8565b5f91506112ea565b015190508280610f70565b601f198216925f5160206122ba5f395f51905f525f52805f20915f5b8581106113865750836001951061136e575b505050811b015f5160206122ba5f395f51905f5255610f91565b01515f1960f88460031b161c19169055828080611354565b91926020600181928685015181550194019201611342565b81811115610f57575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410611410575b81601f9101920160051c03905f5b828110611403575050610f57565b5f828201556001016113f5565b5f91506113e7565b015190508380610f06565b601f198216935f51602061225a5f395f51905f525f52805f20915f5b868110611484575083600195961061146c575b505050811b015f51602061225a5f395f51905f5255610f27565b01515f1960f88460031b161c19169055838080611452565b9192602060018192868501518155019401920161143f565b81811115610eec575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab06020841061150e575b81601f9101920160051c03905f5b828110611501575050610eec565b5f828201556001016114f3565b5f91506114e5565b600291506001600160401b0316101581610e6e565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036115825760206040515f51602061233a5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c576115a5611992565b602435906001600160401b03821161014c573660238301121561014c5781600401356001600160401b03811161073857604051926115ed601f8301601f1916602001856119be565b818452366024838301011161014c57815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611771575b506115825761164f611e1e565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f918161173d575b506116915783634c9c8ce360e01b5f5260045260245ffd5b805f51602061233a5f395f51905f5285920361172b5750823b15611719575f51602061233a5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156117015761014a916121cd565b50503461170a57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611769575b81611759602093836119be565b8101031261014c57519085611679565b3d915061174c565b5f51602061233a5f395f51905f52546001600160a01b03161415905083611642565b3461014c57602036600319011261014c5761014a60043533611e51565b3461014c57604036600319011261014c576117c9611992565b6117d1611e1e565b6001600160a01b038116156106255761014a9060243590611f6a565b3461014c575f36600319011261014c57602061180761202c565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b1c611846611992565b61184e6119a8565b6044359161185d833383611c89565b611d4d565b3461014c575f36600319011261014c5760205f5160206122fa5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b1c6118a7611992565b6024359033611f07565b3461014c575f36600319011261014c576040515f5f51602061225a5f395f51905f52546118dd816119df565b8084529060018116908115610bf9575060011461190457610af283610b7b818503826119be565b5f51602061225a5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b80821061195457509091508101602001610b7b610b6b565b91926001816020925483858801015201910190929161193c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761073857604052565b90600182811c92168015611a0d575b60208310146119f957565b634e487b7160e01b5f52602260045260245ffd5b91607f16916119ee565b604051905f825f51602061229a5f395f51905f525491611a36836119df565b8083529260018116908115611ac75750600114611a5c575b611a5a925003836119be565b565b505f51602061229a5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611aab575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611a93565b60209250611a5a94915060ff191682840152151560051b820101611a4e565b604051905f825f51602061231a5f395f51905f525491611b05836119df565b8083529260018116908115611ac75750600114611b2857611a5a925003836119be565b505f51602061231a5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b77575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611b5f565b60405190611ba26040836119be565b600c82526b57726170706564205661726160a01b6020830152565b60405190611bcc6040836119be565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611c76575f5160206122da5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611c9483611be0565b60018060a01b0382165f5260205260405f2054925f198410611cb7575b50505050565b828410611d2a576001600160a01b03811615611d17576001600160a01b03821615611d0457611ce590611be0565b9060018060a01b03165f5260205260405f20910390555f808080611cb1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611e0b576001600160a01b031691821561062557815f525f51602061227a5f395f51905f5260205260405f2054818110611df257817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f51602061227a5f395f51905f5284520360405f2055845f525f51602061227a5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f5160206122da5f395f51905f52546001600160a01b03163303611e3e57565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611e0b57805f525f51602061227a5f395f51905f5260205260405f2054838110611eed576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f51602061227a5f395f51905f528452036040862055805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611d17576001600160a01b0316928315611d04577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591611f56602092611be0565b855f5282528060405f2055604051908152a3565b5f5160206122fa5f395f51905f525490828201809211612018575f5160206122fa5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060209084611ff657805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f52555b604051908152a3565b8484525f51602061227a5f395f51905f52825260408420818154019055611fed565b634e487b7160e01b5f52601160045260245ffd5b612034611a17565b60208151910120612043611ae6565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261209b60c0826119be565b51902090565b60ff5f51602061235a5f395f51905f525460401c16156120bd57565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161214e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612143575f516001600160a01b0381161561213957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156121b9578061216b575050565b600181036121825763f645eedf60e01b5f5260045ffd5b6002810361219d575063fce698f760e01b5f5260045260245ffd5b6003146121a75750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b905f8091602081519101845af48080612246575b156122015750506040513d81523d5f602083013e60203d82010160405290565b1561222657639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15612237576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806121e15750813b15156121e156fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1363:2191:165:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;2378:1:52;1363:2191:165;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;1363:2191:165;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;4789:20:54;1363:2191:165;;:::i;:::-;4789:20:54;;:::i;:::-;:29;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:56;;:26;2297:97;;8977:25:40;9031:8;1363:2191:165;;;;;;;;;;;;993:64:59;1363:2191:165;;;;;;;;;;;;;;;;2435:78:56;1363:2191:165;2435:78:56;;1363:2191:165;1294:95:56;1363:2191:165;;1294:95:56;1363:2191:165;1294:95:56;;1363:2191:165;;;;;;;;;1294:95:56;;1363:2191:165;1294:95:56;1363:2191:165;1294:95:56;;1363:2191:165;;1294:95:56;;1363:2191:165;;1294:95:56;;1363:2191:165;;2435:78:56;;;1363:2191:165;2435:78:56;;:::i;:::-;1363:2191:165;2425:89:56;;3785:23:61;;:::i;:::-;4037:249:43;1363:2191:165;4037:249:43;;-1:-1:-1;;;4037:249:43;;;;;;;;;;1363:2191:165;;;4037:249:43;1363:2191:165;;4037:249:43;;8977:25:40;:::i;:::-;9031:8;;;;;:::i;:::-;-1:-1:-1;;;;;1363:2191:165;2638:15:56;;;2634:88;;10039:4:54;;;;;:::i;2634:88:56:-;2676:35;;;;;1363:2191:165;2676:35:56;1363:2191:165;;;;;;2676:35:56;2297:97;2350:33;;;;1363:2191:165;2350:33:56;1363:2191:165;;;;2350:33:56;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;4301:16:18;1363:2191:165;;4724:16:18;;:34;;;;1363:2191:165;4803:1:18;4788:16;:50;;;;1363:2191:165;4853:13:18;:30;;;;1363:2191:165;4849:91:18;;;1363:2191:165;4803:1:18;-1:-1:-1;;;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;4977:67:18;;1363:2191:165;;;:::i;:::-;1573:14;;;:::i;:::-;6891:76:18;;;:::i;:::-;;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;6891:76:18;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;1363:2191:165;;:::i;:::-;6891:76:18;;;:::i;:::-;1363:2191:165;;;;;;;:::i;:::-;4803:1:18;1363:2191:165;;-1:-1:-1;;;1363:2191:165;;;;6891:76:18;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;8725:21:54;8721:91;;1693:9:165;8850:5:54;;;:::i;:::-;5064:101:18;;1363:2191:165;5064:101:18;-1:-1:-1;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;5140:14:18;1363:2191:165;;;4803:1:18;1363:2191:165;;5140:14:18;1363:2191:165;8721:91:54;8769:32;;;1363:2191:165;8769:32:54;1363:2191:165;;;;;8769:32:54;1363:2191:165;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;4977:67:18;1363:2191:165;-1:-1:-1;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;4977:67:18;;4849:91;6496:23;;;1363:2191:165;4906:23:18;1363:2191:165;;4906:23:18;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1363:2191:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;4563:5:54;1363:2191:165;;:::i;:::-;;;987:10:57;;4563:5:54;:::i;:::-;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;-1:-1:-1;1363:2191:165;;;;;;;;-1:-1:-1;;1363:2191:165;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5294:13:61;1363:2191:165;;;;5329:4:61;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;;;;;;;;;993:64:59;1363:2191:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;1494:5:55;1363:2191:165;;:::i;:::-;;;987:10:57;1463:5:55;987:10:57;;1463:5:55;;:::i;:::-;1494;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;1363:2191:165;;;;;;;-1:-1:-1;;;;;1363:2191:165;3996:40:52;1363:2191:165;;3996:40:52;1363:2191:165;;;;;;;-1:-1:-1;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;6429:44:18;;;;;1363:2191:165;6425:105:18;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;1363:2191:165;;;;;;;:::i;:::-;1573:14;;:::i;:::-;6891:76:18;;:::i;:::-;;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;6891:76:18;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;6959:1:18;;-1:-1:-1;;;;;1363:2191:165;6891:76:18;;:::i;:::-;;;:::i;6959:1::-;1363:2191:165;;:::i;:::-;6891:76:18;;:::i;:::-;1363:2191:165;;;;;;:::i;:::-;6591:4:18;1363:2191:165;;-1:-1:-1;;;1363:2191:165;;;;6891:76:18;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;6654:20:18;1363:2191:165;;;2526:1;1363:2191;;6654:20:18;1363:2191:165;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;6429:44:18;2526:1:165;1363:2191;;-1:-1:-1;;;;;1363:2191:165;6448:25:18;;6429:44;;;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;4840:6:19;-1:-1:-1;;;;;1363:2191:165;4831:4:19;4823:23;4819:145;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;4819:145:19;4594:29;;;1363:2191:165;4924:29:19;1363:2191:165;;4924:29:19;1363:2191:165;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4417:6:19;1363:2191:165;4408:4:19;4400:23;;;:120;;;;1363:2191:165;4383:251:19;;;2324:62:52;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;5881:52:19;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;5881:52:19;;1363:2191:165;;5881:52:19;;;1363:2191:165;-1:-1:-1;5877:437:19;;1805:47:11;;;;1363:2191:165;6243:60:19;1363:2191:165;;;;6243:60:19;5877:437;5975:40;-1:-1:-1;;;;;;;;;;;5975:40:19;;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;1363:2191:165;;;;;2407:36:11;-1:-1:-1;;2407:36:11;1363:2191:165;;2458:15:11;:11;;2489:53;;;:::i;2454:148::-;6185:9;;;6181:70;;1363:2191:165;6181:70:11;6221:19;;;1363:2191:165;6221:19:11;1363:2191:165;;6221:19:11;1744:119;1805:47;;;1363:2191:165;1805:47:11;1363:2191:165;;;;1805:47:11;5971:120:19;6042:34;;;1363:2191:165;6042:34:19;1363:2191:165;;;;6042:34:19;5881:52;;;;1363:2191:165;5881:52:19;;1363:2191:165;5881:52:19;;;;;;1363:2191:165;5881:52:19;;;:::i;:::-;;;1363:2191:165;;;;;5881:52:19;;;;;;;-1:-1:-1;5881:52:19;;4400:120;-1:-1:-1;;;;;;;;;;;1363:2191:165;-1:-1:-1;;;;;1363:2191:165;4478:42:19;;;-1:-1:-1;4400:120:19;;;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;1020:5:55;1363:2191:165;;987:10:57;1020:5:55;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;1363:2191:165;;8725:21:54;8721:91;;8850:5;1363:2191:165;;;8850:5:54;;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;3785:23:61;;:::i;:::-;1363:2191:165;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;3286:2;1363:2191;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;6120:5:54;1363:2191:165;;:::i;:::-;;;:::i;:::-;;;987:10:57;6084:5:54;987:10:57;;6084:5:54;;:::i;:::-;6120;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;10039:4:54;1363:2191:165;;:::i;:::-;;;987:10:57;;10039:4:54;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;-1:-1:-1;;1363:2191:165;;;;:::o;:::-;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1363:2191:165;;;;:::o;1573:14::-;1363:2191;;;;;;;:::i;:::-;1573:14;1363:2191;;-1:-1:-1;;;1573:14:165;;;;:::o;1363:2191::-;-1:-1:-1;;;;;1363:2191:165;;;;;4789:13:54;1363:2191:165;;;;;;:::o;3426:215:52:-;-1:-1:-1;;;;;1363:2191:165;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;1363:2191:165;;;;;;;-1:-1:-1;;;;;1363:2191:165;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;1363:2191:165;;3530:1:52;3555:31;11669:476:54;;;4789:20;;;:::i;:::-;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;;;-1:-1:-1;1363:2191:165;;;;;11834:36:54;;11830:309;;11669:476;;;;;:::o;11830:309::-;11890:24;;;11886:130;;-1:-1:-1;;;;;1363:2191:165;;11065:19:54;11061:89;;-1:-1:-1;;;;;1363:2191:165;;11163:21:54;11159:90;;11258:20;;;:::i;:::-;:29;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;-1:-1:-1;1363:2191:165;;;;;11830:309:54;;;;;;11159:90;11207:31;;;-1:-1:-1;11207:31:54;-1:-1:-1;11207:31:54;1363:2191:165;;-1:-1:-1;11207:31:54;11061:89;11107:32;;;-1:-1:-1;11107:32:54;-1:-1:-1;11107:32:54;1363:2191:165;;-1:-1:-1;11107:32:54;11886:130;11941:60;;;;;;-1:-1:-1;11941:60:54;1363:2191:165;;;;;;11941:60:54;1363:2191:165;;;;;;-1:-1:-1;11941:60:54;6527:300;-1:-1:-1;;;;;1363:2191:165;;6610:18:54;;6606:86;;-1:-1:-1;;;;;1363:2191:165;;6705:16:54;;6701:86;;1363:2191:165;6626:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;6626:1:54;1363:2191:165;;7531:19:54;;;7527:115;;1363:2191:165;8280:25:54;1363:2191:165;;;;6626:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;6626:1:54;1363:2191:165;;;6626:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;6626:1:54;1363:2191:165;;;;;;;;;;;;8280:25:54;6527:300::o;7527:115::-;7577:50;;;;6626:1;7577:50;;1363:2191:165;;;;;;6626:1:54;7577:50;6606:86;6651:30;;;6626:1;6651:30;6626:1;6651:30;1363:2191:165;;6626:1:54;6651:30;2679:162:52;-1:-1:-1;;;;;;;;;;;1363:2191:165;-1:-1:-1;;;;;1363:2191:165;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;1363:2191:165;;-1:-1:-1;2784:40:52;9181:206:54;;;;-1:-1:-1;;;;;1363:2191:165;9251:21:54;;9247:89;;1363:2191:165;9270:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;9270:1:54;1363:2191:165;;7531:19:54;;;7527:115;;1363:2191:165;;9270:1:54;1363:2191:165;;8280:25:54;1363:2191:165;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;8280:25:54;9181:206::o;7527:115::-;7577:50;;;;;9270:1;7577:50;;1363:2191:165;;;;;;9270:1:54;7577:50;10900:487;;-1:-1:-1;;;;;1363:2191:165;;;11065:19:54;;11061:89;;-1:-1:-1;;;;;1363:2191:165;;11163:21:54;;11159:90;;11339:31;11258:20;;1363:2191:165;11258:20:54;;:::i;:::-;1363:2191:165;-1:-1:-1;1363:2191:165;;;;;-1:-1:-1;1363:2191:165;;;;;;;11339:31:54;10900:487::o;7142:1170::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;8280:25:54;;1363:2191:165;;7840:16:54;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;7836:429:54;1363:2191:165;;;;;8280:25:54;7142:1170::o;7836:429::-;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;7836:429:54;;1363:2191:165;;;;;1693:9;;;;;1363:2191;1693:9;3821:191:61;1363:2191:165;;:::i;:::-;;;;;;6463:31:61;1363:2191:165;;:::i;:::-;;;;;;6801:34:61;1363:2191:165;;3912:92:61;1363:2191:165;3912:92:61;;1363:2191:165;1977:95:61;1363:2191:165;;;1977:95:61;;1363:2191:165;1977:95:61;;;1363:2191:165;3975:13:61;1977:95;;;1363:2191:165;3998:4:61;1977:95;;;1363:2191:165;1977:95:61;3912:92;;;;;;:::i;:::-;1363:2191:165;3902:103:61;;3821:191;:::o;7082:141:18:-;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;7129:1551:40;;;8209:66;8196:79;;8192:164;;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;;8467:24:40;;;;;;;;;-1:-1:-1;8467:24:40;-1:-1:-1;;;;;1363:2191:165;;8505:20:40;8501:113;;8624:49;-1:-1:-1;8624:49:40;-1:-1:-1;7129:1551:40;:::o;8501:113::-;8541:62;-1:-1:-1;8541:62:40;8467:24;8541:62;-1:-1:-1;8541:62:40;:::o;8467:24::-;1363:2191:165;;;-1:-1:-1;1363:2191:165;;;;;8192:164:40;8291:54;;;8307:1;8291:54;8311:30;8291:54;;:::o;11617:532::-;1363:2191:165;;;;;;11703:29:40;;;11748:7;;:::o;11699:444::-;1363:2191:165;11799:38:40;;1363:2191:165;;11860:23:40;;;11712:20;11860:23;1363:2191:165;11712:20:40;11860:23;11795:348;11913:35;11904:44;;11913:35;;11971:46;;;;11712:20;11971:46;1363:2191:165;;;11712:20:40;11971:46;11900:243;12047:30;12038:39;12034:109;;11900:243;11617:532::o;12034:109::-;12100:32;;;11712:20;12100:32;1363:2191:165;;;11712:20:40;12100:32;1363:2191:165;;;;11712:20:40;1363:2191:165;;;;;11712:20:40;1363:2191:165;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;1363:2191:165;;;;5045:24:25;1363:2191:165;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;1363:2191:165;;;-1:-1:-1;1363:2191:165;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"1929":[{"start":5437,"length":32},{"start":5655,"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.35+commit.47b9dedd\"},\"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 is invalid.\"}],\"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 applies 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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d\",\"dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xd518def45c722a6e803e1e26e625db25e01497f672ca566cca585d234ec903b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e7de3fccd96783244790cde282435ce0fd3a44ab4ccb10f17005c743202882f\",\"dweb:/ipfs/QmYSepstTqs5UPJvjeJXkWU5R659yReqrSgSGGh65hkbdK\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0x31160f7d687d8f0fca92528a76585061dd8ef1d112430ff9051cf1948cbf3a82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93c7dcbff32c852eac94ec0a0f9f64088d9a669d814ce319ac9ed696d7b4507b\",\"dweb:/ipfs/QmUz3AKuvdZxd1AkZNfvHhMr6dbfuAwF9zAeG71FLwuVBD\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x2abba89aa289a6c0e38404a5b2e0020ca133e1ae0c790bdfc4cc99a1e2af93ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://babdfa68f728f6063f378692ac75dc086d3a7d7a4c04f53779c4365d0b2d1124\",\"dweb:/ipfs/QmNZe3zu6FvpN9xBMadQsxip11VAUyqJWHTbrBGCqes9SC\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95\",\"dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd\",\"dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x102f0cccca882d643f31ddf8720664530e1196d0348ba62d86501df0711f6c8b\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://919e7e553cd084dc747238d85d684d3b71ead188f2fb3e963f34a7086cab1c05\",\"dweb:/ipfs/QmRGRPCVP3oN7nUz9r9YzmPSHq3A9DVy9VN2SEBaNZ8DcX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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 applies 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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16","urls":["bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d","dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xd518def45c722a6e803e1e26e625db25e01497f672ca566cca585d234ec903b0","urls":["bzz-raw://6e7de3fccd96783244790cde282435ce0fd3a44ab4ccb10f17005c743202882f","dweb:/ipfs/QmYSepstTqs5UPJvjeJXkWU5R659yReqrSgSGGh65hkbdK"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0x31160f7d687d8f0fca92528a76585061dd8ef1d112430ff9051cf1948cbf3a82","urls":["bzz-raw://93c7dcbff32c852eac94ec0a0f9f64088d9a669d814ce319ac9ed696d7b4507b","dweb:/ipfs/QmUz3AKuvdZxd1AkZNfvHhMr6dbfuAwF9zAeG71FLwuVBD"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x2abba89aa289a6c0e38404a5b2e0020ca133e1ae0c790bdfc4cc99a1e2af93ba","urls":["bzz-raw://babdfa68f728f6063f378692ac75dc086d3a7d7a4c04f53779c4365d0b2d1124","dweb:/ipfs/QmNZe3zu6FvpN9xBMadQsxip11VAUyqJWHTbrBGCqes9SC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol":{"keccak256":"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad","urls":["bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95","dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d","urls":["bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd","dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x102f0cccca882d643f31ddf8720664530e1196d0348ba62d86501df0711f6c8b","urls":["bzz-raw://919e7e553cd084dc747238d85d684d3b71ead188f2fb3e963f34a7086cab1c05","dweb:/ipfs/QmRGRPCVP3oN7nUz9r9YzmPSHq3A9DVy9VN2SEBaNZ8DcX"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":85522,"exportedSymbols":{"ERC20BurnableUpgradeable":[20148],"ERC20PermitUpgradeable":[20317],"ERC20Upgradeable":[20086],"Initializable":[1913],"OwnableUpgradeable":[19465],"UUPSUpgradeable":[2079],"WrappedVara":[85521]},"nodeType":"SourceUnit","src":"114:3441:165","nodes":[{"id":85380,"nodeType":"PragmaDirective","src":"114:24:165","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":85382,"nodeType":"ImportDirective","src":"140:101:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85522,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":85381,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85384,"nodeType":"ImportDirective","src":"242:96:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":85522,"sourceUnit":19470,"symbolAliases":[{"foreign":{"id":85383,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1913,"src":"250:13:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85386,"nodeType":"ImportDirective","src":"339:102:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":85522,"sourceUnit":20087,"symbolAliases":[{"foreign":{"id":85385,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20086,"src":"347:16:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85388,"nodeType":"ImportDirective","src":"442:135:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85522,"sourceUnit":20149,"symbolAliases":[{"foreign":{"id":85387,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20148,"src":"455:24:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85390,"nodeType":"ImportDirective","src":"578:131:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85522,"sourceUnit":20318,"symbolAliases":[{"foreign":{"id":85389,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20317,"src":"591:22:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85392,"nodeType":"ImportDirective","src":"710:88:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85522,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":85391,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"718:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85521,"nodeType":"ContractDefinition","src":"1363:2191:165","nodes":[{"id":85408,"nodeType":"VariableDeclaration","src":"1536:51:165","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1560:10:165","scope":85521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85406,"name":"string","nodeType":"ElementaryTypeName","src":"1536:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":85407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1573:14:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":85411,"nodeType":"VariableDeclaration","src":"1593:46:165","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1617:12:165","scope":85521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85409,"name":"string","nodeType":"ElementaryTypeName","src":"1593:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":85410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1632:7:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":85414,"nodeType":"VariableDeclaration","src":"1645:57:165","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1670:20:165","scope":85521,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85412,"name":"uint256","nodeType":"ElementaryTypeName","src":"1645:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":85413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1693:9:165","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":85422,"nodeType":"FunctionDefinition","src":"1777:53:165","nodes":[],"body":{"id":85421,"nodeType":"Block","src":"1791:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":85418,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"1801:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":85419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1801:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85420,"nodeType":"ExpressionStatement","src":"1801:22:165"}]},"documentation":{"id":85415,"nodeType":"StructuredDocumentation","src":"1709:63:165","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":85416,"nodeType":"ParameterList","parameters":[],"src":"1788:2:165"},"returnParameters":{"id":85417,"nodeType":"ParameterList","parameters":[],"src":"1791:0:165"},"scope":85521,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85457,"nodeType":"FunctionDefinition","src":"2101:297:165","nodes":[],"body":{"id":85456,"nodeType":"Block","src":"2162:236:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":85431,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85408,"src":"2185:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":85432,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85411,"src":"2197:12: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":85430,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19537,"src":"2172:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":85433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2172:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85434,"nodeType":"ExpressionStatement","src":"2172:38:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":85435,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20107,"src":"2220:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":85436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2220:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85437,"nodeType":"ExpressionStatement","src":"2220:22:165"},{"expression":{"arguments":[{"id":85439,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85425,"src":"2267:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85438,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"2252:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":85440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2252:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85441,"nodeType":"ExpressionStatement","src":"2252:28:165"},{"expression":{"arguments":[{"id":85443,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85408,"src":"2309:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":85442,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20204,"src":"2290:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":85444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2290:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85445,"nodeType":"ExpressionStatement","src":"2290:30:165"},{"expression":{"arguments":[{"id":85447,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85425,"src":"2337:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85448,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85414,"src":"2351:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":85449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2374:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":85450,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[85504],"referencedDeclaration":85504,"src":"2380:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":85451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2374:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2351:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":85446,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"2331:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":85454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2331:60:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85455,"nodeType":"ExpressionStatement","src":"2331:60:165"}]},"documentation":{"id":85423,"nodeType":"StructuredDocumentation","src":"1836:260:165","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":85428,"kind":"modifierInvocation","modifierName":{"id":85427,"name":"initializer","nameLocations":["2150:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"2150:11:165"},"nodeType":"ModifierInvocation","src":"2150:11:165"}],"name":"initialize","nameLocation":"2110:10:165","parameters":{"id":85426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85425,"mutability":"mutable","name":"initialOwner","nameLocation":"2129:12:165","nodeType":"VariableDeclaration","scope":85457,"src":"2121:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85424,"name":"address","nodeType":"ElementaryTypeName","src":"2121:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2120:22:165"},"returnParameters":{"id":85429,"nodeType":"ParameterList","parameters":[],"src":"2162:0:165"},"scope":85521,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85484,"nodeType":"FunctionDefinition","src":"2471:218:165","nodes":[],"body":{"id":85483,"nodeType":"Block","src":"2529:160:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":85467,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85408,"src":"2552:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":85468,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85411,"src":"2564:12: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":85466,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19537,"src":"2539:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":85469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2539:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85470,"nodeType":"ExpressionStatement","src":"2539:38:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":85471,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20107,"src":"2587:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":85472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85473,"nodeType":"ExpressionStatement","src":"2587:22:165"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":85475,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"2634:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":85476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2634:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85474,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"2619:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":85477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2619:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85478,"nodeType":"ExpressionStatement","src":"2619:23:165"},{"expression":{"arguments":[{"id":85480,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85408,"src":"2671:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":85479,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20204,"src":"2652:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":85481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2652:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85482,"nodeType":"ExpressionStatement","src":"2652:30:165"}]},"documentation":{"id":85458,"nodeType":"StructuredDocumentation","src":"2404:62:165","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":85461,"kind":"modifierInvocation","modifierName":{"id":85460,"name":"onlyOwner","nameLocations":["2502:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2502:9:165"},"nodeType":"ModifierInvocation","src":"2502:9:165"},{"arguments":[{"hexValue":"32","id":85463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2526:1:165","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":85464,"kind":"modifierInvocation","modifierName":{"id":85462,"name":"reinitializer","nameLocations":["2512:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"2512:13:165"},"nodeType":"ModifierInvocation","src":"2512:16:165"}],"name":"reinitialize","nameLocation":"2480:12:165","parameters":{"id":85459,"nodeType":"ParameterList","parameters":[],"src":"2492:2:165"},"returnParameters":{"id":85465,"nodeType":"ParameterList","parameters":[],"src":"2529:0:165"},"scope":85521,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85494,"nodeType":"FunctionDefinition","src":"2854:84:165","nodes":[],"body":{"id":85493,"nodeType":"Block","src":"2936:2:165","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":85485,"nodeType":"StructuredDocumentation","src":"2695: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":85491,"kind":"modifierInvocation","modifierName":{"id":85490,"name":"onlyOwner","nameLocations":["2926:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2926:9:165"},"nodeType":"ModifierInvocation","src":"2926:9:165"}],"name":"_authorizeUpgrade","nameLocation":"2863:17:165","overrides":{"id":85489,"nodeType":"OverrideSpecifier","overrides":[],"src":"2917:8:165"},"parameters":{"id":85488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85487,"mutability":"mutable","name":"newImplementation","nameLocation":"2889:17:165","nodeType":"VariableDeclaration","scope":85494,"src":"2881:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85486,"name":"address","nodeType":"ElementaryTypeName","src":"2881:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2880:27:165"},"returnParameters":{"id":85492,"nodeType":"ParameterList","parameters":[],"src":"2936:0:165"},"scope":85521,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85504,"nodeType":"FunctionDefinition","src":"3212:83:165","nodes":[],"body":{"id":85503,"nodeType":"Block","src":"3269:26:165","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":85501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3286:2:165","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":85500,"id":85502,"nodeType":"Return","src":"3279:9:165"}]},"baseFunctions":[19606],"documentation":{"id":85495,"nodeType":"StructuredDocumentation","src":"2944:263:165","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":"3221:8:165","overrides":{"id":85497,"nodeType":"OverrideSpecifier","overrides":[],"src":"3244:8:165"},"parameters":{"id":85496,"nodeType":"ParameterList","parameters":[],"src":"3229:2:165"},"returnParameters":{"id":85500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85504,"src":"3262:5:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":85498,"name":"uint8","nodeType":"ElementaryTypeName","src":"3262:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3261:7:165"},"scope":85521,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":85520,"nodeType":"FunctionDefinition","src":"3459:93:165","nodes":[],"body":{"id":85519,"nodeType":"Block","src":"3518:34:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":85515,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85507,"src":"3534:2:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85516,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85509,"src":"3538:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":85514,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"3528:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":85517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3528:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85518,"nodeType":"ExpressionStatement","src":"3528:17:165"}]},"documentation":{"id":85505,"nodeType":"StructuredDocumentation","src":"3301:153:165","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":85512,"kind":"modifierInvocation","modifierName":{"id":85511,"name":"onlyOwner","nameLocations":["3508:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"3508:9:165"},"nodeType":"ModifierInvocation","src":"3508:9:165"}],"name":"mint","nameLocation":"3468:4:165","parameters":{"id":85510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85507,"mutability":"mutable","name":"to","nameLocation":"3481:2:165","nodeType":"VariableDeclaration","scope":85520,"src":"3473:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85506,"name":"address","nodeType":"ElementaryTypeName","src":"3473:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85509,"mutability":"mutable","name":"amount","nameLocation":"3493:6:165","nodeType":"VariableDeclaration","scope":85520,"src":"3485:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85508,"name":"uint256","nodeType":"ElementaryTypeName","src":"3485:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3472:28:165"},"returnParameters":{"id":85513,"nodeType":"ParameterList","parameters":[],"src":"3518:0:165"},"scope":85521,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":85394,"name":"Initializable","nameLocations":["1391:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":1913,"src":"1391:13:165"},"id":85395,"nodeType":"InheritanceSpecifier","src":"1391:13:165"},{"baseName":{"id":85396,"name":"ERC20Upgradeable","nameLocations":["1410:16:165"],"nodeType":"IdentifierPath","referencedDeclaration":20086,"src":"1410:16:165"},"id":85397,"nodeType":"InheritanceSpecifier","src":"1410:16:165"},{"baseName":{"id":85398,"name":"ERC20BurnableUpgradeable","nameLocations":["1432:24:165"],"nodeType":"IdentifierPath","referencedDeclaration":20148,"src":"1432:24:165"},"id":85399,"nodeType":"InheritanceSpecifier","src":"1432:24:165"},{"baseName":{"id":85400,"name":"OwnableUpgradeable","nameLocations":["1462:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"1462:18:165"},"id":85401,"nodeType":"InheritanceSpecifier","src":"1462:18:165"},{"baseName":{"id":85402,"name":"ERC20PermitUpgradeable","nameLocations":["1486:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":20317,"src":"1486:22:165"},"id":85403,"nodeType":"InheritanceSpecifier","src":"1486:22:165"},{"baseName":{"id":85404,"name":"UUPSUpgradeable","nameLocations":["1514:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"1514:15:165"},"id":85405,"nodeType":"InheritanceSpecifier","src":"1514:15:165"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":85393,"nodeType":"StructuredDocumentation","src":"800:562:165","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":[85521,2079,376,20317,20577,20974,366,2734,19465,20148,20086,418,2698,2672,20363,1913],"name":"WrappedVara","nameLocation":"1372:11:165","scope":85522,"usedErrors":[388,393,398,407,412,417,995,1008,1662,1665,1936,1941,3201,6168,8568,8573,8578,19301,19306,20183,20190,20480],"usedEvents":[324,346,1670,2606,2615,19312]}],"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":"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":"0x60a080604052346100c257306080525f5160206124415f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161237a90816100c7823960805181818161153d01526116170152f35b6001600160401b0319166001600160401b039081175f5160206124415f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146118b1578063095ea7b31461188b57806318160ddd1461186257806323b872dd1461182a578063313ce5671461180f5780633644e515146117ed57806340c10f19146117b057806342966c68146117935780634f1ef2861461159157806352d1902d1461152b5780636c2eb35014610e3857806370a0823114610df4578063715018a614610d8d57806379cc679014610d5d5780637ecebe0014610d0757806384b0196e14610c515780638da5cb5b14610c1d57806395d89b4114610b27578063a9059cbb14610af6578063ad3cb1cc14610aab578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611992565b610145611e1e565b611c18565b005b5f80fd5b3461014c57604036600319011261014c57610169611992565b61017a6101746119a8565b91611be0565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611992565b6101b86119a8565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e0826119be565b51902061028461202c565b906040519161190160f01b83526002830152602282015260c43591604260a43592206120cc565b90929192612159565b6001600160a01b03168481036102cf575061014a9350611f07565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611992565b5f51602061235a5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610aa3575b6001149081610a99575b159081610a90575b50610a81578160016001600160401b03195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610a4c575b61038d611b93565b91610396611bbd565b9161039f6120a1565b6103a76120a1565b83516001600160401b038111610738576103ce5f51602061225a5f395f51905f52546119df565b601f81116109d2575b50602094601f8211600114610957579481929394955f9261094c575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b82516001600160401b0381116107385761043b5f5160206122ba5f395f51905f52546119df565b601f81116108d2575b506020601f821160011461085757819293945f9261084c575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b6104866120a1565b61048e6120a1565b6104966120a1565b61049f81611c18565b6104a7611b93565b916104b06120a1565b604051916104bf6040846119be565b60018352603160f81b60208401526104d56120a1565b83516001600160401b038111610738576104fc5f51602061229a5f395f51905f52546119df565b601f81116107d2575b50602094601f8211600114610757579481929394955f9261074c575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b82516001600160401b038111610738576105695f51602061231a5f395f51905f52546119df565b601f81116106be575b506020601f821160011461064357819293945f92610638575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b6001600160a01b0381161561062557670de0b6b3a76400006105cd91611f6a565b6105d357005b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061231a5f395f51905f525f52805f20915f5b8181106106a65750958360019596971061068e575b505050811b015f51602061231a5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610674565b9192602060018192868b01518155019401920161065f565b81811115610572575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610730575b81601f9101920160051c03905f5b828110610723575050610572565b5f82820155600101610715565b5f9150610707565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f51602061229a5f395f51905f525f52805f20915f5b8881106107ba575083600195969798106107a2575b505050811b015f51602061229a5f395f51905f5255610542565b01515f1960f88460031b161c19169055858080610788565b91926020600181928685015181550194019201610773565b81811115610505575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610844575b81601f9101920160051c03905f5b828110610837575050610505565b5f82820155600101610829565b5f915061081b565b01519050848061045d565b601f198216905f5160206122ba5f395f51905f525f52805f20915f5b8181106108ba575095836001959697106108a2575b505050811b015f5160206122ba5f395f51905f525561047e565b01515f1960f88460031b161c19169055848080610888565b9192602060018192868b015181550194019201610873565b81811115610444575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610944575b81601f9101920160051c03905f5b828110610937575050610444565b5f82820155600101610929565b5f915061091b565b0151905085806103f3565b601f198216955f51602061225a5f395f51905f525f52805f20915f5b8881106109ba575083600195969798106109a2575b505050811b015f51602061225a5f395f51905f5255610414565b01515f1960f88460031b161c19169055858080610988565b91926020600181928685015181550194019201610973565b818111156103d7575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a44575b81601f9101920160051c03905f5b828110610a375750506103d7565b5f82820155600101610a29565b5f9150610a1b565b6801000000000000000060ff60401b195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610af2604051610acc6040826119be565b60058152640352e302e360dc1b602082015260405191829160208352602083019061196e565b0390f35b3461014c57604036600319011261014c57610b1c610b12611992565b6024359033611d4d565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206122ba5f395f51905f5254610b53816119df565b8084529060018116908115610bf95750600114610b8f575b610af283610b7b818503826119be565b60405191829160208352602083019061196e565b5f5160206122ba5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bdf57509091508101602001610b7b610b6b565b919260018160209254838588010152019101909291610bc7565b60ff191660208086019190915291151560051b84019091019150610b7b9050610b6b565b3461014c575f36600319011261014c575f5160206122da5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c57610cab610c6c611a17565b610c74611ae6565b6020610cb960405192610c8783856119be565b5f84525f368137604051958695600f60f81b875260e08588015260e087019061196e565b90858203604087015261196e565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610cf057505050500390f35b835185528695509381019392810192600101610ce1565b3461014c57602036600319011261014c57610d20611992565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610d79611992565b60243590610d88823383611c89565b611e51565b3461014c575f36600319011261014c57610da5611e1e565b5f5160206122da5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610e15611992565b165f525f51602061227a5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610e50611e1e565b5f51602061235a5f395f51905f525460ff8160401c16908115611516575b50610a81575f51602061235a5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610ea4611b93565b610eac611bbd565b610eb46120a1565b610ebc6120a1565b81516001600160401b03811161073857610ee35f51602061225a5f395f51905f52546119df565b601f811161149c575b50602092601f821160011461142357928192935f92611418575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b80516001600160401b03811161073857610f4e5f5160206122ba5f395f51905f52546119df565b601f811161139e575b50602091601f8211600114611326579181925f9261131b575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b610f996120a1565b5f5160206122da5f395f51905f5254610fc5906001600160a01b0316610fbd6120a1565b6101456120a1565b610fcd611b93565b610fd56120a1565b604051610fe36040826119be565b60018152603160f81b6020820152610ff96120a1565b81516001600160401b038111610738576110205f51602061229a5f395f51905f52546119df565b601f81116112a1575b50602092601f821160011461122857928192935f9261121d575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b80516001600160401b0381116107385761108b5f51602061231a5f395f51905f52546119df565b601f81116111a3575b50602091601f821160011461112b579181925f92611120575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b0151905082806110ad565b601f198216925f51602061231a5f395f51905f525f52805f20915f5b85811061118b57508360019510611173575b505050811b015f51602061231a5f395f51905f52556110ce565b01515f1960f88460031b161c19169055828080611159565b91926020600181928685015181550194019201611147565b81811115611094575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410611215575b81601f9101920160051c03905f5b828110611208575050611094565b5f828201556001016111fa565b5f91506111ec565b015190508380611043565b601f198216935f51602061229a5f395f51905f525f52805f20915f5b8681106112895750836001959610611271575b505050811b015f51602061229a5f395f51905f5255611064565b01515f1960f88460031b161c19169055838080611257565b91926020600181928685015181550194019201611244565b81811115611029575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410611313575b81601f9101920160051c03905f5b828110611306575050611029565b5f828201556001016112f8565b5f91506112ea565b015190508280610f70565b601f198216925f5160206122ba5f395f51905f525f52805f20915f5b8581106113865750836001951061136e575b505050811b015f5160206122ba5f395f51905f5255610f91565b01515f1960f88460031b161c19169055828080611354565b91926020600181928685015181550194019201611342565b81811115610f57575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410611410575b81601f9101920160051c03905f5b828110611403575050610f57565b5f828201556001016113f5565b5f91506113e7565b015190508380610f06565b601f198216935f51602061225a5f395f51905f525f52805f20915f5b868110611484575083600195961061146c575b505050811b015f51602061225a5f395f51905f5255610f27565b01515f1960f88460031b161c19169055838080611452565b9192602060018192868501518155019401920161143f565b81811115610eec575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab06020841061150e575b81601f9101920160051c03905f5b828110611501575050610eec565b5f828201556001016114f3565b5f91506114e5565b600291506001600160401b0316101581610e6e565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036115825760206040515f51602061233a5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c576115a5611992565b602435906001600160401b03821161014c573660238301121561014c5781600401356001600160401b03811161073857604051926115ed601f8301601f1916602001856119be565b818452366024838301011161014c57815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611771575b506115825761164f611e1e565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f918161173d575b506116915783634c9c8ce360e01b5f5260045260245ffd5b805f51602061233a5f395f51905f5285920361172b5750823b15611719575f51602061233a5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156117015761014a916121cd565b50503461170a57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611769575b81611759602093836119be565b8101031261014c57519085611679565b3d915061174c565b5f51602061233a5f395f51905f52546001600160a01b03161415905083611642565b3461014c57602036600319011261014c5761014a60043533611e51565b3461014c57604036600319011261014c576117c9611992565b6117d1611e1e565b6001600160a01b038116156106255761014a9060243590611f6a565b3461014c575f36600319011261014c57602061180761202c565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b1c611846611992565b61184e6119a8565b6044359161185d833383611c89565b611d4d565b3461014c575f36600319011261014c5760205f5160206122fa5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b1c6118a7611992565b6024359033611f07565b3461014c575f36600319011261014c576040515f5f51602061225a5f395f51905f52546118dd816119df565b8084529060018116908115610bf9575060011461190457610af283610b7b818503826119be565b5f51602061225a5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b80821061195457509091508101602001610b7b610b6b565b91926001816020925483858801015201910190929161193c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761073857604052565b90600182811c92168015611a0d575b60208310146119f957565b634e487b7160e01b5f52602260045260245ffd5b91607f16916119ee565b604051905f825f51602061229a5f395f51905f525491611a36836119df565b8083529260018116908115611ac75750600114611a5c575b611a5a925003836119be565b565b505f51602061229a5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611aab575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611a93565b60209250611a5a94915060ff191682840152151560051b820101611a4e565b604051905f825f51602061231a5f395f51905f525491611b05836119df565b8083529260018116908115611ac75750600114611b2857611a5a925003836119be565b505f51602061231a5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b77575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611b5f565b60405190611ba26040836119be565b600c82526b57726170706564205661726160a01b6020830152565b60405190611bcc6040836119be565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611c76575f5160206122da5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611c9483611be0565b60018060a01b0382165f5260205260405f2054925f198410611cb7575b50505050565b828410611d2a576001600160a01b03811615611d17576001600160a01b03821615611d0457611ce590611be0565b9060018060a01b03165f5260205260405f20910390555f808080611cb1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611e0b576001600160a01b031691821561062557815f525f51602061227a5f395f51905f5260205260405f2054818110611df257817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f51602061227a5f395f51905f5284520360405f2055845f525f51602061227a5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f5160206122da5f395f51905f52546001600160a01b03163303611e3e57565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611e0b57805f525f51602061227a5f395f51905f5260205260405f2054838110611eed576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f51602061227a5f395f51905f528452036040862055805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611d17576001600160a01b0316928315611d04577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591611f56602092611be0565b855f5282528060405f2055604051908152a3565b5f5160206122fa5f395f51905f525490828201809211612018575f5160206122fa5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060209084611ff657805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f52555b604051908152a3565b8484525f51602061227a5f395f51905f52825260408420818154019055611fed565b634e487b7160e01b5f52601160045260245ffd5b612034611a17565b60208151910120612043611ae6565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261209b60c0826119be565b51902090565b60ff5f51602061235a5f395f51905f525460401c16156120bd57565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161214e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612143575f516001600160a01b0381161561213957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156121b9578061216b575050565b600181036121825763f645eedf60e01b5f5260045ffd5b6002810361219d575063fce698f760e01b5f5260045260245ffd5b6003146121a75750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b905f8091602081519101845af48080612246575b156122015750506040513d81523d5f602083013e60203d82010160405290565b1561222657639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15612237576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806121e15750813b15156121e156fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1363:2191:165:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;7983:34:18;7979:146;;-1:-1:-1;1363:2191:165;;;;;;;;1076:13:19;1363:2191:165;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;1363:2191:165;-1:-1:-1;;;;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;8085:29:18;;1363:2191:165;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;1363:2191:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146118b1578063095ea7b31461188b57806318160ddd1461186257806323b872dd1461182a578063313ce5671461180f5780633644e515146117ed57806340c10f19146117b057806342966c68146117935780634f1ef2861461159157806352d1902d1461152b5780636c2eb35014610e3857806370a0823114610df4578063715018a614610d8d57806379cc679014610d5d5780637ecebe0014610d0757806384b0196e14610c515780638da5cb5b14610c1d57806395d89b4114610b27578063a9059cbb14610af6578063ad3cb1cc14610aab578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611992565b610145611e1e565b611c18565b005b5f80fd5b3461014c57604036600319011261014c57610169611992565b61017a6101746119a8565b91611be0565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611992565b6101b86119a8565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e0826119be565b51902061028461202c565b906040519161190160f01b83526002830152602282015260c43591604260a43592206120cc565b90929192612159565b6001600160a01b03168481036102cf575061014a9350611f07565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611992565b5f51602061235a5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610aa3575b6001149081610a99575b159081610a90575b50610a81578160016001600160401b03195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610a4c575b61038d611b93565b91610396611bbd565b9161039f6120a1565b6103a76120a1565b83516001600160401b038111610738576103ce5f51602061225a5f395f51905f52546119df565b601f81116109d2575b50602094601f8211600114610957579481929394955f9261094c575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b82516001600160401b0381116107385761043b5f5160206122ba5f395f51905f52546119df565b601f81116108d2575b506020601f821160011461085757819293945f9261084c575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b6104866120a1565b61048e6120a1565b6104966120a1565b61049f81611c18565b6104a7611b93565b916104b06120a1565b604051916104bf6040846119be565b60018352603160f81b60208401526104d56120a1565b83516001600160401b038111610738576104fc5f51602061229a5f395f51905f52546119df565b601f81116107d2575b50602094601f8211600114610757579481929394955f9261074c575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b82516001600160401b038111610738576105695f51602061231a5f395f51905f52546119df565b601f81116106be575b506020601f821160011461064357819293945f92610638575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b6001600160a01b0381161561062557670de0b6b3a76400006105cd91611f6a565b6105d357005b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061231a5f395f51905f525f52805f20915f5b8181106106a65750958360019596971061068e575b505050811b015f51602061231a5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610674565b9192602060018192868b01518155019401920161065f565b81811115610572575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610730575b81601f9101920160051c03905f5b828110610723575050610572565b5f82820155600101610715565b5f9150610707565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f51602061229a5f395f51905f525f52805f20915f5b8881106107ba575083600195969798106107a2575b505050811b015f51602061229a5f395f51905f5255610542565b01515f1960f88460031b161c19169055858080610788565b91926020600181928685015181550194019201610773565b81811115610505575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610844575b81601f9101920160051c03905f5b828110610837575050610505565b5f82820155600101610829565b5f915061081b565b01519050848061045d565b601f198216905f5160206122ba5f395f51905f525f52805f20915f5b8181106108ba575095836001959697106108a2575b505050811b015f5160206122ba5f395f51905f525561047e565b01515f1960f88460031b161c19169055848080610888565b9192602060018192868b015181550194019201610873565b81811115610444575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610944575b81601f9101920160051c03905f5b828110610937575050610444565b5f82820155600101610929565b5f915061091b565b0151905085806103f3565b601f198216955f51602061225a5f395f51905f525f52805f20915f5b8881106109ba575083600195969798106109a2575b505050811b015f51602061225a5f395f51905f5255610414565b01515f1960f88460031b161c19169055858080610988565b91926020600181928685015181550194019201610973565b818111156103d7575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a44575b81601f9101920160051c03905f5b828110610a375750506103d7565b5f82820155600101610a29565b5f9150610a1b565b6801000000000000000060ff60401b195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610af2604051610acc6040826119be565b60058152640352e302e360dc1b602082015260405191829160208352602083019061196e565b0390f35b3461014c57604036600319011261014c57610b1c610b12611992565b6024359033611d4d565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206122ba5f395f51905f5254610b53816119df565b8084529060018116908115610bf95750600114610b8f575b610af283610b7b818503826119be565b60405191829160208352602083019061196e565b5f5160206122ba5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bdf57509091508101602001610b7b610b6b565b919260018160209254838588010152019101909291610bc7565b60ff191660208086019190915291151560051b84019091019150610b7b9050610b6b565b3461014c575f36600319011261014c575f5160206122da5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c57610cab610c6c611a17565b610c74611ae6565b6020610cb960405192610c8783856119be565b5f84525f368137604051958695600f60f81b875260e08588015260e087019061196e565b90858203604087015261196e565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610cf057505050500390f35b835185528695509381019392810192600101610ce1565b3461014c57602036600319011261014c57610d20611992565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610d79611992565b60243590610d88823383611c89565b611e51565b3461014c575f36600319011261014c57610da5611e1e565b5f5160206122da5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610e15611992565b165f525f51602061227a5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610e50611e1e565b5f51602061235a5f395f51905f525460ff8160401c16908115611516575b50610a81575f51602061235a5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610ea4611b93565b610eac611bbd565b610eb46120a1565b610ebc6120a1565b81516001600160401b03811161073857610ee35f51602061225a5f395f51905f52546119df565b601f811161149c575b50602092601f821160011461142357928192935f92611418575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b80516001600160401b03811161073857610f4e5f5160206122ba5f395f51905f52546119df565b601f811161139e575b50602091601f8211600114611326579181925f9261131b575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b610f996120a1565b5f5160206122da5f395f51905f5254610fc5906001600160a01b0316610fbd6120a1565b6101456120a1565b610fcd611b93565b610fd56120a1565b604051610fe36040826119be565b60018152603160f81b6020820152610ff96120a1565b81516001600160401b038111610738576110205f51602061229a5f395f51905f52546119df565b601f81116112a1575b50602092601f821160011461122857928192935f9261121d575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b80516001600160401b0381116107385761108b5f51602061231a5f395f51905f52546119df565b601f81116111a3575b50602091601f821160011461112b579181925f92611120575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b0151905082806110ad565b601f198216925f51602061231a5f395f51905f525f52805f20915f5b85811061118b57508360019510611173575b505050811b015f51602061231a5f395f51905f52556110ce565b01515f1960f88460031b161c19169055828080611159565b91926020600181928685015181550194019201611147565b81811115611094575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410611215575b81601f9101920160051c03905f5b828110611208575050611094565b5f828201556001016111fa565b5f91506111ec565b015190508380611043565b601f198216935f51602061229a5f395f51905f525f52805f20915f5b8681106112895750836001959610611271575b505050811b015f51602061229a5f395f51905f5255611064565b01515f1960f88460031b161c19169055838080611257565b91926020600181928685015181550194019201611244565b81811115611029575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410611313575b81601f9101920160051c03905f5b828110611306575050611029565b5f828201556001016112f8565b5f91506112ea565b015190508280610f70565b601f198216925f5160206122ba5f395f51905f525f52805f20915f5b8581106113865750836001951061136e575b505050811b015f5160206122ba5f395f51905f5255610f91565b01515f1960f88460031b161c19169055828080611354565b91926020600181928685015181550194019201611342565b81811115610f57575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410611410575b81601f9101920160051c03905f5b828110611403575050610f57565b5f828201556001016113f5565b5f91506113e7565b015190508380610f06565b601f198216935f51602061225a5f395f51905f525f52805f20915f5b868110611484575083600195961061146c575b505050811b015f51602061225a5f395f51905f5255610f27565b01515f1960f88460031b161c19169055838080611452565b9192602060018192868501518155019401920161143f565b81811115610eec575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab06020841061150e575b81601f9101920160051c03905f5b828110611501575050610eec565b5f828201556001016114f3565b5f91506114e5565b600291506001600160401b0316101581610e6e565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036115825760206040515f51602061233a5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c576115a5611992565b602435906001600160401b03821161014c573660238301121561014c5781600401356001600160401b03811161073857604051926115ed601f8301601f1916602001856119be565b818452366024838301011161014c57815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611771575b506115825761164f611e1e565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f918161173d575b506116915783634c9c8ce360e01b5f5260045260245ffd5b805f51602061233a5f395f51905f5285920361172b5750823b15611719575f51602061233a5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156117015761014a916121cd565b50503461170a57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611769575b81611759602093836119be565b8101031261014c57519085611679565b3d915061174c565b5f51602061233a5f395f51905f52546001600160a01b03161415905083611642565b3461014c57602036600319011261014c5761014a60043533611e51565b3461014c57604036600319011261014c576117c9611992565b6117d1611e1e565b6001600160a01b038116156106255761014a9060243590611f6a565b3461014c575f36600319011261014c57602061180761202c565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b1c611846611992565b61184e6119a8565b6044359161185d833383611c89565b611d4d565b3461014c575f36600319011261014c5760205f5160206122fa5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b1c6118a7611992565b6024359033611f07565b3461014c575f36600319011261014c576040515f5f51602061225a5f395f51905f52546118dd816119df565b8084529060018116908115610bf9575060011461190457610af283610b7b818503826119be565b5f51602061225a5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b80821061195457509091508101602001610b7b610b6b565b91926001816020925483858801015201910190929161193c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761073857604052565b90600182811c92168015611a0d575b60208310146119f957565b634e487b7160e01b5f52602260045260245ffd5b91607f16916119ee565b604051905f825f51602061229a5f395f51905f525491611a36836119df565b8083529260018116908115611ac75750600114611a5c575b611a5a925003836119be565b565b505f51602061229a5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611aab575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611a93565b60209250611a5a94915060ff191682840152151560051b820101611a4e565b604051905f825f51602061231a5f395f51905f525491611b05836119df565b8083529260018116908115611ac75750600114611b2857611a5a925003836119be565b505f51602061231a5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b77575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611b5f565b60405190611ba26040836119be565b600c82526b57726170706564205661726160a01b6020830152565b60405190611bcc6040836119be565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611c76575f5160206122da5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611c9483611be0565b60018060a01b0382165f5260205260405f2054925f198410611cb7575b50505050565b828410611d2a576001600160a01b03811615611d17576001600160a01b03821615611d0457611ce590611be0565b9060018060a01b03165f5260205260405f20910390555f808080611cb1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611e0b576001600160a01b031691821561062557815f525f51602061227a5f395f51905f5260205260405f2054818110611df257817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f51602061227a5f395f51905f5284520360405f2055845f525f51602061227a5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f5160206122da5f395f51905f52546001600160a01b03163303611e3e57565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611e0b57805f525f51602061227a5f395f51905f5260205260405f2054838110611eed576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f51602061227a5f395f51905f528452036040862055805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611d17576001600160a01b0316928315611d04577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591611f56602092611be0565b855f5282528060405f2055604051908152a3565b5f5160206122fa5f395f51905f525490828201809211612018575f5160206122fa5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060209084611ff657805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f52555b604051908152a3565b8484525f51602061227a5f395f51905f52825260408420818154019055611fed565b634e487b7160e01b5f52601160045260245ffd5b612034611a17565b60208151910120612043611ae6565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261209b60c0826119be565b51902090565b60ff5f51602061235a5f395f51905f525460401c16156120bd57565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161214e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612143575f516001600160a01b0381161561213957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156121b9578061216b575050565b600181036121825763f645eedf60e01b5f5260045ffd5b6002810361219d575063fce698f760e01b5f5260045260245ffd5b6003146121a75750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b905f8091602081519101845af48080612246575b156122015750506040513d81523d5f602083013e60203d82010160405290565b1561222657639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15612237576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806121e15750813b15156121e156fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1363:2191:165:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;2378:1:52;1363:2191:165;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;1363:2191:165;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;4789:20:54;1363:2191:165;;:::i;:::-;4789:20:54;;:::i;:::-;:29;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:56;;:26;2297:97;;8977:25:40;9031:8;1363:2191:165;;;;;;;;;;;;993:64:59;1363:2191:165;;;;;;;;;;;;;;;;2435:78:56;1363:2191:165;2435:78:56;;1363:2191:165;1294:95:56;1363:2191:165;;1294:95:56;1363:2191:165;1294:95:56;;1363:2191:165;;;;;;;;;1294:95:56;;1363:2191:165;1294:95:56;1363:2191:165;1294:95:56;;1363:2191:165;;1294:95:56;;1363:2191:165;;1294:95:56;;1363:2191:165;;2435:78:56;;;1363:2191:165;2435:78:56;;:::i;:::-;1363:2191:165;2425:89:56;;3785:23:61;;:::i;:::-;4037:249:43;1363:2191:165;4037:249:43;;-1:-1:-1;;;4037:249:43;;;;;;;;;;1363:2191:165;;;4037:249:43;1363:2191:165;;4037:249:43;;8977:25:40;:::i;:::-;9031:8;;;;;:::i;:::-;-1:-1:-1;;;;;1363:2191:165;2638:15:56;;;2634:88;;10039:4:54;;;;;:::i;2634:88:56:-;2676:35;;;;;1363:2191:165;2676:35:56;1363:2191:165;;;;;;2676:35:56;2297:97;2350:33;;;;1363:2191:165;2350:33:56;1363:2191:165;;;;2350:33:56;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;4301:16:18;1363:2191:165;;4724:16:18;;:34;;;;1363:2191:165;4803:1:18;4788:16;:50;;;;1363:2191:165;4853:13:18;:30;;;;1363:2191:165;4849:91:18;;;1363:2191:165;4803:1:18;-1:-1:-1;;;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;4977:67:18;;1363:2191:165;;;:::i;:::-;1573:14;;;:::i;:::-;6891:76:18;;;:::i;:::-;;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;6891:76:18;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;1363:2191:165;;:::i;:::-;6891:76:18;;;:::i;:::-;1363:2191:165;;;;;;;:::i;:::-;4803:1:18;1363:2191:165;;-1:-1:-1;;;1363:2191:165;;;;6891:76:18;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;8725:21:54;8721:91;;1693:9:165;8850:5:54;;;:::i;:::-;5064:101:18;;1363:2191:165;5064:101:18;-1:-1:-1;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;5140:14:18;1363:2191:165;;;4803:1:18;1363:2191:165;;5140:14:18;1363:2191:165;8721:91:54;8769:32;;;1363:2191:165;8769:32:54;1363:2191:165;;;;;8769:32:54;1363:2191:165;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;4977:67:18;1363:2191:165;-1:-1:-1;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;4977:67:18;;4849:91;6496:23;;;1363:2191:165;4906:23:18;1363:2191:165;;4906:23:18;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1363:2191:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;4563:5:54;1363:2191:165;;:::i;:::-;;;987:10:57;;4563:5:54;:::i;:::-;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;-1:-1:-1;1363:2191:165;;;;;;;;-1:-1:-1;;1363:2191:165;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5294:13:61;1363:2191:165;;;;5329:4:61;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;;;;;;;;;993:64:59;1363:2191:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;1494:5:55;1363:2191:165;;:::i;:::-;;;987:10:57;1463:5:55;987:10:57;;1463:5:55;;:::i;:::-;1494;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;1363:2191:165;;;;;;;-1:-1:-1;;;;;1363:2191:165;3996:40:52;1363:2191:165;;3996:40:52;1363:2191:165;;;;;;;-1:-1:-1;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;6429:44:18;;;;;1363:2191:165;6425:105:18;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;1363:2191:165;;;;;;;:::i;:::-;1573:14;;:::i;:::-;6891:76:18;;:::i;:::-;;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;6891:76:18;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;6959:1:18;;-1:-1:-1;;;;;1363:2191:165;6891:76:18;;:::i;:::-;;;:::i;6959:1::-;1363:2191:165;;:::i;:::-;6891:76:18;;:::i;:::-;1363:2191:165;;;;;;:::i;:::-;6591:4:18;1363:2191:165;;-1:-1:-1;;;1363:2191:165;;;;6891:76:18;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;6654:20:18;1363:2191:165;;;2526:1;1363:2191;;6654:20:18;1363:2191:165;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;6429:44:18;2526:1:165;1363:2191;;-1:-1:-1;;;;;1363:2191:165;6448:25:18;;6429:44;;;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;4840:6:19;-1:-1:-1;;;;;1363:2191:165;4831:4:19;4823:23;4819:145;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;4819:145:19;4594:29;;;1363:2191:165;4924:29:19;1363:2191:165;;4924:29:19;1363:2191:165;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4417:6:19;1363:2191:165;4408:4:19;4400:23;;;:120;;;;1363:2191:165;4383:251:19;;;2324:62:52;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;5881:52:19;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;5881:52:19;;1363:2191:165;;5881:52:19;;;1363:2191:165;-1:-1:-1;5877:437:19;;1805:47:11;;;;1363:2191:165;6243:60:19;1363:2191:165;;;;6243:60:19;5877:437;5975:40;-1:-1:-1;;;;;;;;;;;5975:40:19;;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;1363:2191:165;;;;;2407:36:11;-1:-1:-1;;2407:36:11;1363:2191:165;;2458:15:11;:11;;2489:53;;;:::i;2454:148::-;6185:9;;;6181:70;;1363:2191:165;6181:70:11;6221:19;;;1363:2191:165;6221:19:11;1363:2191:165;;6221:19:11;1744:119;1805:47;;;1363:2191:165;1805:47:11;1363:2191:165;;;;1805:47:11;5971:120:19;6042:34;;;1363:2191:165;6042:34:19;1363:2191:165;;;;6042:34:19;5881:52;;;;1363:2191:165;5881:52:19;;1363:2191:165;5881:52:19;;;;;;1363:2191:165;5881:52:19;;;:::i;:::-;;;1363:2191:165;;;;;5881:52:19;;;;;;;-1:-1:-1;5881:52:19;;4400:120;-1:-1:-1;;;;;;;;;;;1363:2191:165;-1:-1:-1;;;;;1363:2191:165;4478:42:19;;;-1:-1:-1;4400:120:19;;;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;1020:5:55;1363:2191:165;;987:10:57;1020:5:55;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;1363:2191:165;;8725:21:54;8721:91;;8850:5;1363:2191:165;;;8850:5:54;;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;3785:23:61;;:::i;:::-;1363:2191:165;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;3286:2;1363:2191;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;6120:5:54;1363:2191:165;;:::i;:::-;;;:::i;:::-;;;987:10:57;6084:5:54;987:10:57;;6084:5:54;;:::i;:::-;6120;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;10039:4:54;1363:2191:165;;:::i;:::-;;;987:10:57;;10039:4:54;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;-1:-1:-1;;1363:2191:165;;;;:::o;:::-;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1363:2191:165;;;;:::o;1573:14::-;1363:2191;;;;;;;:::i;:::-;1573:14;1363:2191;;-1:-1:-1;;;1573:14:165;;;;:::o;1363:2191::-;-1:-1:-1;;;;;1363:2191:165;;;;;4789:13:54;1363:2191:165;;;;;;:::o;3426:215:52:-;-1:-1:-1;;;;;1363:2191:165;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;1363:2191:165;;;;;;;-1:-1:-1;;;;;1363:2191:165;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;1363:2191:165;;3530:1:52;3555:31;11669:476:54;;;4789:20;;;:::i;:::-;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;;;-1:-1:-1;1363:2191:165;;;;;11834:36:54;;11830:309;;11669:476;;;;;:::o;11830:309::-;11890:24;;;11886:130;;-1:-1:-1;;;;;1363:2191:165;;11065:19:54;11061:89;;-1:-1:-1;;;;;1363:2191:165;;11163:21:54;11159:90;;11258:20;;;:::i;:::-;:29;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;-1:-1:-1;1363:2191:165;;;;;11830:309:54;;;;;;11159:90;11207:31;;;-1:-1:-1;11207:31:54;-1:-1:-1;11207:31:54;1363:2191:165;;-1:-1:-1;11207:31:54;11061:89;11107:32;;;-1:-1:-1;11107:32:54;-1:-1:-1;11107:32:54;1363:2191:165;;-1:-1:-1;11107:32:54;11886:130;11941:60;;;;;;-1:-1:-1;11941:60:54;1363:2191:165;;;;;;11941:60:54;1363:2191:165;;;;;;-1:-1:-1;11941:60:54;6527:300;-1:-1:-1;;;;;1363:2191:165;;6610:18:54;;6606:86;;-1:-1:-1;;;;;1363:2191:165;;6705:16:54;;6701:86;;1363:2191:165;6626:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;6626:1:54;1363:2191:165;;7531:19:54;;;7527:115;;1363:2191:165;8280:25:54;1363:2191:165;;;;6626:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;6626:1:54;1363:2191:165;;;6626:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;6626:1:54;1363:2191:165;;;;;;;;;;;;8280:25:54;6527:300::o;7527:115::-;7577:50;;;;6626:1;7577:50;;1363:2191:165;;;;;;6626:1:54;7577:50;6606:86;6651:30;;;6626:1;6651:30;6626:1;6651:30;1363:2191:165;;6626:1:54;6651:30;2679:162:52;-1:-1:-1;;;;;;;;;;;1363:2191:165;-1:-1:-1;;;;;1363:2191:165;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;1363:2191:165;;-1:-1:-1;2784:40:52;9181:206:54;;;;-1:-1:-1;;;;;1363:2191:165;9251:21:54;;9247:89;;1363:2191:165;9270:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;9270:1:54;1363:2191:165;;7531:19:54;;;7527:115;;1363:2191:165;;9270:1:54;1363:2191:165;;8280:25:54;1363:2191:165;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;8280:25:54;9181:206::o;7527:115::-;7577:50;;;;;9270:1;7577:50;;1363:2191:165;;;;;;9270:1:54;7577:50;10900:487;;-1:-1:-1;;;;;1363:2191:165;;;11065:19:54;;11061:89;;-1:-1:-1;;;;;1363:2191:165;;11163:21:54;;11159:90;;11339:31;11258:20;;1363:2191:165;11258:20:54;;:::i;:::-;1363:2191:165;-1:-1:-1;1363:2191:165;;;;;-1:-1:-1;1363:2191:165;;;;;;;11339:31:54;10900:487::o;7142:1170::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;8280:25:54;;1363:2191:165;;7840:16:54;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;7836:429:54;1363:2191:165;;;;;8280:25:54;7142:1170::o;7836:429::-;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;7836:429:54;;1363:2191:165;;;;;1693:9;;;;;1363:2191;1693:9;3821:191:61;1363:2191:165;;:::i;:::-;;;;;;6463:31:61;1363:2191:165;;:::i;:::-;;;;;;6801:34:61;1363:2191:165;;3912:92:61;1363:2191:165;3912:92:61;;1363:2191:165;1977:95:61;1363:2191:165;;;1977:95:61;;1363:2191:165;1977:95:61;;;1363:2191:165;3975:13:61;1977:95;;;1363:2191:165;3998:4:61;1977:95;;;1363:2191:165;1977:95:61;3912:92;;;;;;:::i;:::-;1363:2191:165;3902:103:61;;3821:191;:::o;7082:141:18:-;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;7129:1551:40;;;8209:66;8196:79;;8192:164;;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;;8467:24:40;;;;;;;;;-1:-1:-1;8467:24:40;-1:-1:-1;;;;;1363:2191:165;;8505:20:40;8501:113;;8624:49;-1:-1:-1;8624:49:40;-1:-1:-1;7129:1551:40;:::o;8501:113::-;8541:62;-1:-1:-1;8541:62:40;8467:24;8541:62;-1:-1:-1;8541:62:40;:::o;8467:24::-;1363:2191:165;;;-1:-1:-1;1363:2191:165;;;;;8192:164:40;8291:54;;;8307:1;8291:54;8311:30;8291:54;;:::o;11617:532::-;1363:2191:165;;;;;;11703:29:40;;;11748:7;;:::o;11699:444::-;1363:2191:165;11799:38:40;;1363:2191:165;;11860:23:40;;;11712:20;11860:23;1363:2191:165;11712:20:40;11860:23;11795:348;11913:35;11904:44;;11913:35;;11971:46;;;;11712:20;11971:46;1363:2191:165;;;11712:20:40;11971:46;11900:243;12047:30;12038:39;12034:109;;11900:243;11617:532::o;12034:109::-;12100:32;;;11712:20;12100:32;1363:2191:165;;;11712:20:40;12100:32;1363:2191:165;;;;11712:20:40;1363:2191:165;;;;;11712:20:40;1363:2191:165;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;1363:2191:165;;;;5045:24:25;1363:2191:165;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;1363:2191:165;;;-1:-1:-1;1363:2191:165;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"1929":[{"start":5437,"length":32},{"start":5655,"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.35+commit.47b9dedd\"},\"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 is invalid.\"}],\"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 applies 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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/\",\":forge-std/=dependencies/forge-std-1.16.2/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d\",\"dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xd518def45c722a6e803e1e26e625db25e01497f672ca566cca585d234ec903b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e7de3fccd96783244790cde282435ce0fd3a44ab4ccb10f17005c743202882f\",\"dweb:/ipfs/QmYSepstTqs5UPJvjeJXkWU5R659yReqrSgSGGh65hkbdK\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0x31160f7d687d8f0fca92528a76585061dd8ef1d112430ff9051cf1948cbf3a82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93c7dcbff32c852eac94ec0a0f9f64088d9a669d814ce319ac9ed696d7b4507b\",\"dweb:/ipfs/QmUz3AKuvdZxd1AkZNfvHhMr6dbfuAwF9zAeG71FLwuVBD\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x2abba89aa289a6c0e38404a5b2e0020ca133e1ae0c790bdfc4cc99a1e2af93ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://babdfa68f728f6063f378692ac75dc086d3a7d7a4c04f53779c4365d0b2d1124\",\"dweb:/ipfs/QmNZe3zu6FvpN9xBMadQsxip11VAUyqJWHTbrBGCqes9SC\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95\",\"dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd\",\"dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x102f0cccca882d643f31ddf8720664530e1196d0348ba62d86501df0711f6c8b\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://919e7e553cd084dc747238d85d684d3b71ead188f2fb3e963f34a7086cab1c05\",\"dweb:/ipfs/QmRGRPCVP3oN7nUz9r9YzmPSHq3A9DVy9VN2SEBaNZ8DcX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"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 applies 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-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.2/=dependencies/forge-std-1.16.2/src/","forge-std/=dependencies/forge-std-1.16.2/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.1/=dependencies/openzeppelin-foundry-upgrades-0.4.1/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.1/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16","urls":["bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d","dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xd518def45c722a6e803e1e26e625db25e01497f672ca566cca585d234ec903b0","urls":["bzz-raw://6e7de3fccd96783244790cde282435ce0fd3a44ab4ccb10f17005c743202882f","dweb:/ipfs/QmYSepstTqs5UPJvjeJXkWU5R659yReqrSgSGGh65hkbdK"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0x31160f7d687d8f0fca92528a76585061dd8ef1d112430ff9051cf1948cbf3a82","urls":["bzz-raw://93c7dcbff32c852eac94ec0a0f9f64088d9a669d814ce319ac9ed696d7b4507b","dweb:/ipfs/QmUz3AKuvdZxd1AkZNfvHhMr6dbfuAwF9zAeG71FLwuVBD"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x2abba89aa289a6c0e38404a5b2e0020ca133e1ae0c790bdfc4cc99a1e2af93ba","urls":["bzz-raw://babdfa68f728f6063f378692ac75dc086d3a7d7a4c04f53779c4365d0b2d1124","dweb:/ipfs/QmNZe3zu6FvpN9xBMadQsxip11VAUyqJWHTbrBGCqes9SC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol":{"keccak256":"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad","urls":["bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95","dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d","urls":["bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd","dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x102f0cccca882d643f31ddf8720664530e1196d0348ba62d86501df0711f6c8b","urls":["bzz-raw://919e7e553cd084dc747238d85d684d3b71ead188f2fb3e963f34a7086cab1c05","dweb:/ipfs/QmRGRPCVP3oN7nUz9r9YzmPSHq3A9DVy9VN2SEBaNZ8DcX"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":85676,"exportedSymbols":{"ERC20BurnableUpgradeable":[20148],"ERC20PermitUpgradeable":[20317],"ERC20Upgradeable":[20086],"Initializable":[1913],"OwnableUpgradeable":[19465],"UUPSUpgradeable":[2079],"WrappedVara":[85675]},"nodeType":"SourceUnit","src":"114:3441:165","nodes":[{"id":85534,"nodeType":"PragmaDirective","src":"114:24:165","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":85536,"nodeType":"ImportDirective","src":"140:101:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85676,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":85535,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85538,"nodeType":"ImportDirective","src":"242:96:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":85676,"sourceUnit":19470,"symbolAliases":[{"foreign":{"id":85537,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1913,"src":"250:13:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85540,"nodeType":"ImportDirective","src":"339:102:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":85676,"sourceUnit":20087,"symbolAliases":[{"foreign":{"id":85539,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20086,"src":"347:16:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85542,"nodeType":"ImportDirective","src":"442:135:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85676,"sourceUnit":20149,"symbolAliases":[{"foreign":{"id":85541,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20148,"src":"455:24:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85544,"nodeType":"ImportDirective","src":"578:131:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85676,"sourceUnit":20318,"symbolAliases":[{"foreign":{"id":85543,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20317,"src":"591:22:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85546,"nodeType":"ImportDirective","src":"710:88:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":85676,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":85545,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"718:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85675,"nodeType":"ContractDefinition","src":"1363:2191:165","nodes":[{"id":85562,"nodeType":"VariableDeclaration","src":"1536:51:165","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1560:10:165","scope":85675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85560,"name":"string","nodeType":"ElementaryTypeName","src":"1536:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":85561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1573:14:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":85565,"nodeType":"VariableDeclaration","src":"1593:46:165","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1617:12:165","scope":85675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85563,"name":"string","nodeType":"ElementaryTypeName","src":"1593:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":85564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1632:7:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":85568,"nodeType":"VariableDeclaration","src":"1645:57:165","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1670:20:165","scope":85675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85566,"name":"uint256","nodeType":"ElementaryTypeName","src":"1645:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":85567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1693:9:165","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":85576,"nodeType":"FunctionDefinition","src":"1777:53:165","nodes":[],"body":{"id":85575,"nodeType":"Block","src":"1791:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":85572,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"1801:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":85573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1801:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85574,"nodeType":"ExpressionStatement","src":"1801:22:165"}]},"documentation":{"id":85569,"nodeType":"StructuredDocumentation","src":"1709:63:165","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":85570,"nodeType":"ParameterList","parameters":[],"src":"1788:2:165"},"returnParameters":{"id":85571,"nodeType":"ParameterList","parameters":[],"src":"1791:0:165"},"scope":85675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85611,"nodeType":"FunctionDefinition","src":"2101:297:165","nodes":[],"body":{"id":85610,"nodeType":"Block","src":"2162:236:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":85585,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85562,"src":"2185:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":85586,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85565,"src":"2197:12: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":85584,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19537,"src":"2172:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":85587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2172:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85588,"nodeType":"ExpressionStatement","src":"2172:38:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":85589,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20107,"src":"2220:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":85590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2220:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85591,"nodeType":"ExpressionStatement","src":"2220:22:165"},{"expression":{"arguments":[{"id":85593,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85579,"src":"2267:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85592,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"2252:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":85594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2252:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85595,"nodeType":"ExpressionStatement","src":"2252:28:165"},{"expression":{"arguments":[{"id":85597,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85562,"src":"2309:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":85596,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20204,"src":"2290:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":85598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2290:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85599,"nodeType":"ExpressionStatement","src":"2290:30:165"},{"expression":{"arguments":[{"id":85601,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85579,"src":"2337:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85602,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85568,"src":"2351:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":85606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":85603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2374:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":85604,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[85658],"referencedDeclaration":85658,"src":"2380:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":85605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2374:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2351:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":85600,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"2331:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":85608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2331:60:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85609,"nodeType":"ExpressionStatement","src":"2331:60:165"}]},"documentation":{"id":85577,"nodeType":"StructuredDocumentation","src":"1836:260:165","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":85582,"kind":"modifierInvocation","modifierName":{"id":85581,"name":"initializer","nameLocations":["2150:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"2150:11:165"},"nodeType":"ModifierInvocation","src":"2150:11:165"}],"name":"initialize","nameLocation":"2110:10:165","parameters":{"id":85580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85579,"mutability":"mutable","name":"initialOwner","nameLocation":"2129:12:165","nodeType":"VariableDeclaration","scope":85611,"src":"2121:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85578,"name":"address","nodeType":"ElementaryTypeName","src":"2121:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2120:22:165"},"returnParameters":{"id":85583,"nodeType":"ParameterList","parameters":[],"src":"2162:0:165"},"scope":85675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85638,"nodeType":"FunctionDefinition","src":"2471:218:165","nodes":[],"body":{"id":85637,"nodeType":"Block","src":"2529:160:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":85621,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85562,"src":"2552:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":85622,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85565,"src":"2564:12: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":85620,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19537,"src":"2539:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":85623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2539:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85624,"nodeType":"ExpressionStatement","src":"2539:38:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":85625,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20107,"src":"2587:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":85626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85627,"nodeType":"ExpressionStatement","src":"2587:22:165"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":85629,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"2634:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":85630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2634:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85628,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"2619:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":85631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2619:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85632,"nodeType":"ExpressionStatement","src":"2619:23:165"},{"expression":{"arguments":[{"id":85634,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85562,"src":"2671:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":85633,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20204,"src":"2652:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":85635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2652:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85636,"nodeType":"ExpressionStatement","src":"2652:30:165"}]},"documentation":{"id":85612,"nodeType":"StructuredDocumentation","src":"2404:62:165","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":85615,"kind":"modifierInvocation","modifierName":{"id":85614,"name":"onlyOwner","nameLocations":["2502:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2502:9:165"},"nodeType":"ModifierInvocation","src":"2502:9:165"},{"arguments":[{"hexValue":"32","id":85617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2526:1:165","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":85618,"kind":"modifierInvocation","modifierName":{"id":85616,"name":"reinitializer","nameLocations":["2512:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"2512:13:165"},"nodeType":"ModifierInvocation","src":"2512:16:165"}],"name":"reinitialize","nameLocation":"2480:12:165","parameters":{"id":85613,"nodeType":"ParameterList","parameters":[],"src":"2492:2:165"},"returnParameters":{"id":85619,"nodeType":"ParameterList","parameters":[],"src":"2529:0:165"},"scope":85675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85648,"nodeType":"FunctionDefinition","src":"2854:84:165","nodes":[],"body":{"id":85647,"nodeType":"Block","src":"2936:2:165","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":85639,"nodeType":"StructuredDocumentation","src":"2695: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":85645,"kind":"modifierInvocation","modifierName":{"id":85644,"name":"onlyOwner","nameLocations":["2926:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2926:9:165"},"nodeType":"ModifierInvocation","src":"2926:9:165"}],"name":"_authorizeUpgrade","nameLocation":"2863:17:165","overrides":{"id":85643,"nodeType":"OverrideSpecifier","overrides":[],"src":"2917:8:165"},"parameters":{"id":85642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85641,"mutability":"mutable","name":"newImplementation","nameLocation":"2889:17:165","nodeType":"VariableDeclaration","scope":85648,"src":"2881:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85640,"name":"address","nodeType":"ElementaryTypeName","src":"2881:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2880:27:165"},"returnParameters":{"id":85646,"nodeType":"ParameterList","parameters":[],"src":"2936:0:165"},"scope":85675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85658,"nodeType":"FunctionDefinition","src":"3212:83:165","nodes":[],"body":{"id":85657,"nodeType":"Block","src":"3269:26:165","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":85655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3286:2:165","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":85654,"id":85656,"nodeType":"Return","src":"3279:9:165"}]},"baseFunctions":[19606],"documentation":{"id":85649,"nodeType":"StructuredDocumentation","src":"2944:263:165","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":"3221:8:165","overrides":{"id":85651,"nodeType":"OverrideSpecifier","overrides":[],"src":"3244:8:165"},"parameters":{"id":85650,"nodeType":"ParameterList","parameters":[],"src":"3229:2:165"},"returnParameters":{"id":85654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85658,"src":"3262:5:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":85652,"name":"uint8","nodeType":"ElementaryTypeName","src":"3262:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3261:7:165"},"scope":85675,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":85674,"nodeType":"FunctionDefinition","src":"3459:93:165","nodes":[],"body":{"id":85673,"nodeType":"Block","src":"3518:34:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":85669,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85661,"src":"3534:2:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85670,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85663,"src":"3538:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":85668,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"3528:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":85671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3528:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85672,"nodeType":"ExpressionStatement","src":"3528:17:165"}]},"documentation":{"id":85659,"nodeType":"StructuredDocumentation","src":"3301:153:165","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":85666,"kind":"modifierInvocation","modifierName":{"id":85665,"name":"onlyOwner","nameLocations":["3508:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"3508:9:165"},"nodeType":"ModifierInvocation","src":"3508:9:165"}],"name":"mint","nameLocation":"3468:4:165","parameters":{"id":85664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85661,"mutability":"mutable","name":"to","nameLocation":"3481:2:165","nodeType":"VariableDeclaration","scope":85674,"src":"3473:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85660,"name":"address","nodeType":"ElementaryTypeName","src":"3473:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85663,"mutability":"mutable","name":"amount","nameLocation":"3493:6:165","nodeType":"VariableDeclaration","scope":85674,"src":"3485:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85662,"name":"uint256","nodeType":"ElementaryTypeName","src":"3485:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3472:28:165"},"returnParameters":{"id":85667,"nodeType":"ParameterList","parameters":[],"src":"3518:0:165"},"scope":85675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":85548,"name":"Initializable","nameLocations":["1391:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":1913,"src":"1391:13:165"},"id":85549,"nodeType":"InheritanceSpecifier","src":"1391:13:165"},{"baseName":{"id":85550,"name":"ERC20Upgradeable","nameLocations":["1410:16:165"],"nodeType":"IdentifierPath","referencedDeclaration":20086,"src":"1410:16:165"},"id":85551,"nodeType":"InheritanceSpecifier","src":"1410:16:165"},{"baseName":{"id":85552,"name":"ERC20BurnableUpgradeable","nameLocations":["1432:24:165"],"nodeType":"IdentifierPath","referencedDeclaration":20148,"src":"1432:24:165"},"id":85553,"nodeType":"InheritanceSpecifier","src":"1432:24:165"},{"baseName":{"id":85554,"name":"OwnableUpgradeable","nameLocations":["1462:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"1462:18:165"},"id":85555,"nodeType":"InheritanceSpecifier","src":"1462:18:165"},{"baseName":{"id":85556,"name":"ERC20PermitUpgradeable","nameLocations":["1486:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":20317,"src":"1486:22:165"},"id":85557,"nodeType":"InheritanceSpecifier","src":"1486:22:165"},{"baseName":{"id":85558,"name":"UUPSUpgradeable","nameLocations":["1514:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"1514:15:165"},"id":85559,"nodeType":"InheritanceSpecifier","src":"1514:15:165"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":85547,"nodeType":"StructuredDocumentation","src":"800:562:165","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":[85675,2079,376,20317,20577,20974,366,2734,19465,20148,20086,418,2698,2672,20363,1913],"name":"WrappedVara","nameLocation":"1372:11:165","scope":85676,"usedErrors":[388,393,398,407,412,417,995,1008,1662,1665,1936,1941,3201,6168,8568,8573,8578,19301,19306,20183,20190,20480],"usedEvents":[324,346,1670,2606,2615,19312]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":165} \ 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 4e14747a43b..f139c57a287 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, 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"), }; @@ -136,6 +138,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 @@ -485,6 +488,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 17c404888ac..f0df4a22563 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/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 7271e7e2381..592f0e32133 100644 --- a/ethexe/runtime/common/src/journal.rs +++ b/ethexe/runtime/common/src/journal.rs @@ -7,7 +7,10 @@ use crate::{ ActiveProgram, Dispatch, Expiring, MailboxMessage, ModifiableStorage, PayloadLookup, Program, ProgramState, Storage, }, - transitions::{NonFinalTransition, is_event_destination}, + transitions::{ + NonFinalTransition, is_eth_sails_event_destination, is_event_destination, + is_gear_sails_event_destination, + }, }; use alloc::{ collections::{BTreeMap, BTreeSet}, @@ -205,19 +208,15 @@ impl NativeJournalHandler<'_, S> { transitions.modify_transition(dispatch.source(), |transition| { let stored = dispatch.into_parts().1; - let committable = push_outgoing( - transition, - Message::from_stored(stored, false), - message_type, - ); - // Only emit the autoclaim when the message is committed on Ethereum; - // an off-chain injected event message has no on-chain Message to claim. + let committable = message_type.is_canonical() + || is_eth_sails_event_destination(destination); if committable { - 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); + } } }); @@ -928,6 +927,8 @@ impl Limiter { #[cfg(test)] mod tests { + use super::*; + use crate::{InBlockTransitions, TransitionsConfig, state::MemStorage}; use ethexe_common::{ProgramStates, StateHashWithQueueSize}; use gear_core::{ ids::prelude::MessageIdExt, @@ -937,14 +938,6 @@ mod tests { }, }; - use super::*; - - use crate::{ - InBlockTransitions, TransitionsConfig, - state::MemStorage, - transitions::{ETH_SAILS_EVENT, GEAR_SAILS_EVENT, NonFinalTransition}, - }; - fn init_setup( exec_balance: u128, message_type: MessageType, @@ -995,6 +988,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, @@ -1048,14 +1060,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()); @@ -1066,7 +1077,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()); @@ -1093,7 +1104,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()); @@ -1105,7 +1116,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); @@ -1150,7 +1161,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, ); @@ -1178,14 +1189,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(); @@ -1559,21 +1566,15 @@ mod tests { // ----------------------------------------------------------------------- #[test] fn injected_event_dest_value0_not_committed_no_claim() { - for destination in [GEAR_SAILS_EVENT, ETH_SAILS_EVENT] { + 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); + } } } @@ -1583,23 +1584,15 @@ mod tests { // ----------------------------------------------------------------------- #[test] fn injected_event_dest_with_value_is_committed_with_claim() { - for destination in [GEAR_SAILS_EVENT, ETH_SAILS_EVENT] { + 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); + } } } @@ -1622,22 +1615,15 @@ mod tests { // ----------------------------------------------------------------------- #[test] fn canonical_event_dest_is_committed_with_claim() { - for destination in [GEAR_SAILS_EVENT, ETH_SAILS_EVENT] { + 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/proptest.rs b/ethexe/runtime/common/src/proptest.rs index 5157ba349b5..f21f9738512 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 fce8a785922..66cd7657c33 100644 --- a/ethexe/runtime/common/src/schedule.rs +++ b/ethexe/runtime/common/src/schedule.rs @@ -8,7 +8,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; @@ -96,19 +98,18 @@ 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| { let message = dispatch.clone().into_message(storage, user_id); - let committable = push_outgoing(transition, message, message_type); - // Only emit the autoclaim when the message is committed on Ethereum. + let committable = + message_type.is_canonical() || is_eth_sails_event_destination(user_id); if committable { - transition.claims.push(ValueClaim { - message_id: stashed_message_id, - destination: user_id, - value, - }); + 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); + } } }); @@ -550,17 +551,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); @@ -609,13 +607,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(); @@ -646,13 +644,10 @@ mod tests { // ----------------------------------------------------------------------- #[test] fn send_user_message_injected_event_dest_value0_not_committed_no_claim() { - use crate::{ - InBlockTransitions, TransitionController, TransitionsConfig, - transitions::{ETH_SAILS_EVENT, GEAR_SAILS_EVENT}, - }; + use crate::{InBlockTransitions, TransitionController, TransitionsConfig}; use ethexe_common::{ProgramStates, StateHashWithQueueSize}; - 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); @@ -702,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); + } } } @@ -727,13 +714,10 @@ mod tests { // ----------------------------------------------------------------------- #[test] fn send_user_message_injected_event_dest_with_value_is_committed_with_claim() { - use crate::{ - InBlockTransitions, TransitionController, TransitionsConfig, - transitions::{ETH_SAILS_EVENT, GEAR_SAILS_EVENT}, - }; + use crate::{InBlockTransitions, TransitionController, TransitionsConfig}; use ethexe_common::{ProgramStates, StateHashWithQueueSize}; - 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); @@ -783,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); + } } } diff --git a/ethexe/runtime/common/src/transitions.rs b/ethexe/runtime/common/src/transitions.rs index 088d956920d..3dc6833a77b 100644 --- a/ethexe/runtime/common/src/transitions.rs +++ b/ethexe/runtime/common/src/transitions.rs @@ -13,17 +13,19 @@ use ethexe_common::{ }; use gprimitives::{ActorId, CodeId, H256, MessageId}; -pub(crate) const GEAR_SAILS_EVENT: ActorId = ActorId::new([0; 32]); +pub(crate) fn is_gear_sails_event_destination(destination: ActorId) -> bool { + destination == ActorId::GEAR_SAILS_EVENT +} -/// Must match `gstd`/`gcore` `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_eth_sails_event_destination(destination: ActorId) -> bool { + 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)] @@ -253,6 +255,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, }); } } @@ -308,6 +312,8 @@ pub struct NonFinalTransition { /// Ids of messages in `messages` that are committable to Ethereum. /// Populated by `crate::journal::push_outgoing` when `committable` is true. pub committed_message_ids: BTreeSet, + pub events: Vec>, + pub eth_events: Vec>, } impl NonFinalTransition { @@ -317,7 +323,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"))] @@ -332,6 +338,8 @@ impl NonFinalTransition { value_to_receive: i128, claims: Vec, messages: Vec, + events: Vec>, + eth_events: Vec>, ) -> Self { Self { initial_state, @@ -340,6 +348,8 @@ impl NonFinalTransition { claims, messages, committed_message_ids: BTreeSet::new(), + events, + eth_events, } } } @@ -446,8 +456,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/Cargo.toml b/ethexe/service/Cargo.toml index fcdbd136c60..4370b7d791c 100644 --- a/ethexe/service/Cargo.toml +++ b/ethexe/service/Cargo.toml @@ -85,3 +85,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 6c9ece5b5e6..37f51008ed1 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}, @@ -3748,3 +3749,115 @@ 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 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(sails_events_id, b"\x00gear_event_payload") + .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 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(sails_events_id, &payload) + .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); + + 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/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..5218ed9f38b --- /dev/null +++ b/sdk/examples/sails-events/src/wasm.rs @@ -0,0 +1,25 @@ +// Copyright (C) Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +use gstd::{ActorId, msg, prelude::*}; + +#[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(ActorId::gear_sails_event(), &payload[1..], msg::value()) + .expect("Failed to send event"); + } + 0xff => { + 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])*