Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save auryn-macmillan/033eb45ee71515792f8c76184a397201 to your computer and use it in GitHub Desktop.
Save auryn-macmillan/033eb45ee71515792f8c76184a397201 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.17+commit.8df45f5f.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/ContextUpgradeable.sol";
import "../proxy/utils/Initializable.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
function __Ownable_init() internal onlyInitializing {
__Ownable_init_unchained();
}
function __Ownable_init_unchained() internal onlyInitializing {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
/**
* @dev This empty reserved space is put in place to allow future versions to add new
* variables without shifting down storage in the inheritance chain.
* See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
*/
uint256[49] private __gap;
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)
pragma solidity ^0.8.2;
import "../../utils/AddressUpgradeable.sol";
/**
* @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
* behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an
* external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
* function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
*
* The initialization functions use a version number. Once a version number is used, it is consumed and cannot be
* reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in
* case an upgrade adds a module that needs to be initialized.
*
* For example:
*
* [.hljs-theme-light.nopadding]
* ```
* contract MyToken is ERC20Upgradeable {
* function initialize() initializer public {
* __ERC20_init("MyToken", "MTK");
* }
* }
* contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {
* function initializeV2() reinitializer(2) public {
* __ERC20Permit_init("MyToken");
* }
* }
* ```
*
* TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as
* possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.
*
* CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure
* that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.
*
* [CAUTION]
* ====
* Avoid leaving a contract uninitialized.
*
* An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation
* contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke
* the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:
*
* [.hljs-theme-light.nopadding]
* ```
* /// @custom:oz-upgrades-unsafe-allow constructor
* constructor() {
* _disableInitializers();
* }
* ```
* ====
*/
abstract contract Initializable {
/**
* @dev Indicates that the contract has been initialized.
* @custom:oz-retyped-from bool
*/
uint8 private _initialized;
/**
* @dev Indicates that the contract is in the process of being initialized.
*/
bool private _initializing;
/**
* @dev Triggered when the contract has been initialized or reinitialized.
*/
event Initialized(uint8 version);
/**
* @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,
* `onlyInitializing` functions can be used to initialize parent contracts.
*
* Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a
* constructor.
*
* Emits an {Initialized} event.
*/
modifier initializer() {
bool isTopLevelCall = !_initializing;
require(
(isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),
"Initializable: contract is already initialized"
);
_initialized = 1;
if (isTopLevelCall) {
_initializing = true;
}
_;
if (isTopLevelCall) {
_initializing = false;
emit Initialized(1);
}
}
/**
* @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the
* contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be
* used to initialize parent contracts.
*
* A reinitializer may be used after the original initialization step. This is essential to configure modules that
* are added through upgrades and that require initialization.
*
* When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`
* cannot be nested. If one is invoked in the context of another, execution will revert.
*
* Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in
* a contract, executing them in the right order is up to the developer or operator.
*
* WARNING: setting the version to 255 will prevent any future reinitialization.
*
* Emits an {Initialized} event.
*/
modifier reinitializer(uint8 version) {
require(!_initializing && _initialized < version, "Initializable: contract is already initialized");
_initialized = version;
_initializing = true;
_;
_initializing = false;
emit Initialized(version);
}
/**
* @dev Modifier to protect an initialization function so that it can only be invoked by functions with the
* {initializer} and {reinitializer} modifiers, directly or indirectly.
*/
modifier onlyInitializing() {
require(_initializing, "Initializable: contract is not initializing");
_;
}
/**
* @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.
* Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized
* to any version. It is recommended to use this to lock implementation contracts that are designed to be called
* through proxies.
*
* Emits an {Initialized} event the first time it is successfully executed.
*/
function _disableInitializers() internal virtual {
require(!_initializing, "Initializable: contract is initializing");
if (_initialized < type(uint8).max) {
_initialized = type(uint8).max;
emit Initialized(type(uint8).max);
}
}
/**
* @dev Returns the highest version that has been initialized. See {reinitializer}.
*/
function _getInitializedVersion() internal view returns (uint8) {
return _initialized;
}
/**
* @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.
*/
function _isInitializing() internal view returns (bool) {
return _initializing;
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library AddressUpgradeable {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
* the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
*
* _Available since v4.8._
*/
function verifyCallResultFromTarget(
address target,
bool success,
bytes memory returndata,
string memory errorMessage
) internal view returns (bytes memory) {
if (success) {
if (returndata.length == 0) {
// only check isContract if the call was successful and the return data is empty
// otherwise we already know that it was a contract
require(isContract(target), "Address: call to non-contract");
}
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
/**
* @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason or using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
function _revert(bytes memory returndata, string memory errorMessage) private pure {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
import "../proxy/utils/Initializable.sol";
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract ContextUpgradeable is Initializable {
function __Context_init() internal onlyInitializing {
}
function __Context_init_unchained() internal onlyInitializing {
}
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
/**
* @dev This empty reserved space is put in place to allow future versions to add new
* variables without shifting down storage in the inheritance chain.
* See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
*/
uint256[50] private __gap;
}
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
},
{
"files": "*.yml",
"options": {}
},
{
"files": "*.yaml",
"options": {}
},
{
"files": "*.toml",
"options": {}
},
{
"files": "*.json",
"options": {}
},
{
"files": "*.js",
"options": {}
},
{
"files": "*.ts",
"options": {}
}
]
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610c5c806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80637ef79f8c1461005157806384dd0d1214610081578063b31825bf146100b1578063d56154ab146100e1575b600080fd5b61006b6004803603810190610066919061077a565b610111565b6040516100789190610816565b60405180910390f35b61009b60048036038101906100969190610831565b6102b2565b6040516100a89190610816565b60405180910390f35b6100cb60048036038101906100c691906108a0565b610483565b6040516100d89190610816565b60405180910390f35b6100fb60048036038101906100f69190610831565b61050c565b60405161010891906109b1565b60405180910390f35b60008061011f86868661050c565b905060005b8151811015610184576001600080848481518110610145576101446109d3565b5b60200260200101518152602001908152602001600020600082825461016a9190610a31565b92505081905550808061017c90610a65565b915050610124565b50600080600090505b82518110156101f05760008382815181106101ab576101aa6109d3565b5b602002602001015190506000806000838152602001908152602001600020549050838111156101db578093508195505b505080806101e890610a65565b91505061018d565b5060005b825181101561025e57600080858360208110610213576102126109d3565b5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009055808061025690610a65565b9150506101f4565b50838110156102a8573081846040517f22bcb23b00000000000000000000000000000000000000000000000000000000815260040161029f93929190610acb565b60405180910390fd5b5050949350505050565b6000806102c085858561050c565b90506000816000815181106102d8576102d76109d3565b5b602002602001015190506000801b8103610346573086600081518110610301576103006109d3565b5b60200260200101516040517f2a0c203900000000000000000000000000000000000000000000000000000000815260040161033d929190610b02565b60405180910390fd5b600080600190505b83518110156104755783818151811061036a576103696109d3565b5b602002602001015191506000801b82036103d75730888281518110610392576103916109d3565b5b60200260200101516040517f2a0c20390000000000000000000000000000000000000000000000000000000081526004016103ce929190610b02565b60405180910390fd5b82821461045f5730886001836103ed9190610b2b565b815181106103fe576103fd6109d3565b5b6020026020010151898381518110610419576104186109d3565b5b60200260200101516040517fdbed4b2700000000000000000000000000000000000000000000000000000000815260040161045693929190610b5f565b60405180910390fd5b819250808061046d90610a65565b91505061034e565b508093505050509392505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663b31825bf8585856040518463ffffffff1660e01b81526004016104c293929190610b96565b602060405180830381865afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105039190610bf9565b90509392505050565b606060005b84518110156105715761053f8582815181106105305761052f6109d3565b5b60200260200101518585610483565b828281518110610552576105516109d3565b5b602002602001018181525050808061056990610a65565b915050610511565b509392505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105db82610592565b810181811067ffffffffffffffff821117156105fa576105f96105a3565b5b80604052505050565b600061060d610579565b905061061982826105d2565b919050565b600067ffffffffffffffff821115610639576106386105a3565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061067a8261064f565b9050919050565b61068a8161066f565b811461069557600080fd5b50565b6000813590506106a781610681565b92915050565b60006106c06106bb8461061e565b610603565b905080838252602082019050602084028301858111156106e3576106e261064a565b5b835b8181101561070c57806106f88882610698565b8452602084019350506020810190506106e5565b5050509392505050565b600082601f83011261072b5761072a61058d565b5b813561073b8482602086016106ad565b91505092915050565b6000819050919050565b61075781610744565b811461076257600080fd5b50565b6000813590506107748161074e565b92915050565b6000806000806080858703121561079457610793610583565b5b600085013567ffffffffffffffff8111156107b2576107b1610588565b5b6107be87828801610716565b94505060206107cf87828801610765565b93505060406107e087828801610765565b92505060606107f187828801610765565b91505092959194509250565b6000819050919050565b610810816107fd565b82525050565b600060208201905061082b6000830184610807565b92915050565b60008060006060848603121561084a57610849610583565b5b600084013567ffffffffffffffff81111561086857610867610588565b5b61087486828701610716565b935050602061088586828701610765565b925050604061089686828701610765565b9150509250925092565b6000806000606084860312156108b9576108b8610583565b5b60006108c786828701610698565b93505060206108d886828701610765565b92505060406108e986828701610765565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610928816107fd565b82525050565b600061093a838361091f565b60208301905092915050565b6000602082019050919050565b600061095e826108f3565b61096881856108fe565b93506109738361090f565b8060005b838110156109a457815161098b888261092e565b975061099683610946565b925050600181019050610977565b5085935050505092915050565b600060208201905081810360008301526109cb8184610953565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a3c82610744565b9150610a4783610744565b9250828201905080821115610a5f57610a5e610a02565b5b92915050565b6000610a7082610744565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aa257610aa1610a02565b5b600182019050919050565b610ab68161066f565b82525050565b610ac581610744565b82525050565b6000606082019050610ae06000830186610aad565b610aed6020830185610abc565b610afa6040830184610807565b949350505050565b6000604082019050610b176000830185610aad565b610b246020830184610aad565b9392505050565b6000610b3682610744565b9150610b4183610744565b9250828203905081811115610b5957610b58610a02565b5b92915050565b6000606082019050610b746000830186610aad565b610b816020830185610aad565b610b8e6040830184610aad565b949350505050565b6000606082019050610bab6000830186610aad565b610bb86020830185610abc565b610bc56040830184610abc565b949350505050565b610bd6816107fd565b8114610be157600080fd5b50565b600081519050610bf381610bcd565b92915050565b600060208284031215610c0f57610c0e610583565b5b6000610c1d84828501610be4565b9150509291505056fea2646970667358221220adf3938367e12aaf1153aa4152fcc50f0eb69564932dd70e1e74b27406c520bb64736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC5C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7EF79F8C EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x84DD0D12 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xB31825BF EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xD56154AB EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x77A JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x831 JUMP JUMPDEST PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x8A0 JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x831 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP2 SWAP1 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11F DUP7 DUP7 DUP7 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x184 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xA31 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP1 PUSH2 0x17C SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x124 JUMP JUMPDEST POP PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AB JUMPI PUSH2 0x1AA PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x1DB JUMPI DUP1 SWAP4 POP DUP2 SWAP6 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1E8 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x18D JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 PUSH1 0x20 DUP2 LT PUSH2 0x213 JUMPI PUSH2 0x212 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE DUP1 DUP1 PUSH2 0x256 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F4 JUMP JUMPDEST POP DUP4 DUP2 LT ISZERO PUSH2 0x2A8 JUMPI ADDRESS DUP2 DUP5 PUSH1 0x40 MLOAD PUSH32 0x22BCB23B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xACB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C0 DUP6 DUP6 DUP6 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D8 JUMPI PUSH2 0x2D7 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 SHL DUP2 SUB PUSH2 0x346 JUMPI ADDRESS DUP7 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x301 JUMPI PUSH2 0x300 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x2A0C203900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33D SWAP3 SWAP2 SWAP1 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x475 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x36A JUMPI PUSH2 0x369 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x3D7 JUMPI ADDRESS DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x392 JUMPI PUSH2 0x391 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x2A0C203900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CE SWAP3 SWAP2 SWAP1 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 EQ PUSH2 0x45F JUMPI ADDRESS DUP9 PUSH1 0x1 DUP4 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0xB2B JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3FE JUMPI PUSH2 0x3FD PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x419 JUMPI PUSH2 0x418 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xDBED4B2700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x456 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP3 POP DUP1 DUP1 PUSH2 0x46D SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x34E JUMP JUMPDEST POP DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB31825BF DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xBF9 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x571 JUMPI PUSH2 0x53F DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x530 JUMPI PUSH2 0x52F PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP6 PUSH2 0x483 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x552 JUMPI PUSH2 0x551 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x569 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x511 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5DB DUP3 PUSH2 0x592 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x5FA JUMPI PUSH2 0x5F9 PUSH2 0x5A3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60D PUSH2 0x579 JUMP JUMPDEST SWAP1 POP PUSH2 0x619 DUP3 DUP3 PUSH2 0x5D2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x638 PUSH2 0x5A3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67A DUP3 PUSH2 0x64F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68A DUP2 PUSH2 0x66F JUMP JUMPDEST DUP2 EQ PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6A7 DUP2 PUSH2 0x681 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6C0 PUSH2 0x6BB DUP5 PUSH2 0x61E JUMP JUMPDEST PUSH2 0x603 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x6E3 JUMPI PUSH2 0x6E2 PUSH2 0x64A JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x70C JUMPI DUP1 PUSH2 0x6F8 DUP9 DUP3 PUSH2 0x698 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6E5 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x72B JUMPI PUSH2 0x72A PUSH2 0x58D JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x73B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x6AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x757 DUP2 PUSH2 0x744 JUMP JUMPDEST DUP2 EQ PUSH2 0x762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x774 DUP2 PUSH2 0x74E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x794 JUMPI PUSH2 0x793 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH2 0x7B1 PUSH2 0x588 JUMP JUMPDEST JUMPDEST PUSH2 0x7BE DUP8 DUP3 DUP9 ADD PUSH2 0x716 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x7CF DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x7E0 DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x7F1 DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x810 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x82B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x807 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x84A JUMPI PUSH2 0x849 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x868 JUMPI PUSH2 0x867 PUSH2 0x588 JUMP JUMPDEST JUMPDEST PUSH2 0x874 DUP7 DUP3 DUP8 ADD PUSH2 0x716 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x885 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x896 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8B9 JUMPI PUSH2 0x8B8 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x8C7 DUP7 DUP3 DUP8 ADD PUSH2 0x698 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x8D8 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8E9 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x928 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x93A DUP4 DUP4 PUSH2 0x91F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95E DUP3 PUSH2 0x8F3 JUMP JUMPDEST PUSH2 0x968 DUP2 DUP6 PUSH2 0x8FE JUMP JUMPDEST SWAP4 POP PUSH2 0x973 DUP4 PUSH2 0x90F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9A4 JUMPI DUP2 MLOAD PUSH2 0x98B DUP9 DUP3 PUSH2 0x92E JUMP JUMPDEST SWAP8 POP PUSH2 0x996 DUP4 PUSH2 0x946 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x977 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x9CB DUP2 DUP5 PUSH2 0x953 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA3C DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH2 0xA47 DUP4 PUSH2 0x744 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xA5F JUMPI PUSH2 0xA5E PUSH2 0xA02 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA70 DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA02 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAB6 DUP2 PUSH2 0x66F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0x744 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAE0 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xAED PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xABC JUMP JUMPDEST PUSH2 0xAFA PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x807 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xB17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB36 DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH2 0xB41 DUP4 PUSH2 0x744 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0xB59 JUMPI PUSH2 0xB58 PUSH2 0xA02 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xB74 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB81 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB8E PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xBAB PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xBB8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xABC JUMP JUMPDEST PUSH2 0xBC5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xABC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xBD6 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP2 EQ PUSH2 0xBE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xBF3 DUP2 PUSH2 0xBCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC0F JUMPI PUSH2 0xC0E PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1D DUP5 DUP3 DUP6 ADD PUSH2 0xBE4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAD RETURN SWAP4 DUP4 PUSH8 0xE12AAF1153AA4152 0xFC 0xC5 0xF 0xE 0xB6 SWAP6 PUSH5 0x932DD70E1E PUSH21 0xB27406C520BB64736F6C6343000811003300000000 ",
"sourceMap": "100:4935:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getAgreedOnHeader_206": {
"entryPoint": 690,
"id": 206,
"parameterSlots": 3,
"returnSlots": 1
},
"@getHeaderFromOracle_52": {
"entryPoint": 1155,
"id": 52,
"parameterSlots": 3,
"returnSlots": 1
},
"@getHeaderFromThreshold_328": {
"entryPoint": 273,
"id": 328,
"parameterSlots": 4,
"returnSlots": 1
},
"@getHeadersFromOracles_92": {
"entryPoint": 1292,
"id": 92,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 1709,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 1688,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 1814,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32_fromMemory": {
"entryPoint": 3044,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1893,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_uint256t_uint256": {
"entryPoint": 2208,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256": {
"entryPoint": 2097,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256t_uint256": {
"entryPoint": 1914,
"id": null,
"parameterSlots": 2,
"returnSlots": 4
},
"abi_decode_tuple_t_bytes32_fromMemory": {
"entryPoint": 3065,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32": {
"entryPoint": 2350,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 2733,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack": {
"entryPoint": 2387,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes32_to_t_bytes32": {
"entryPoint": 2335,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 2055,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2748,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
"entryPoint": 2818,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": {
"entryPoint": 2911,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_bytes32__to_t_address_t_uint256_t_bytes32__fromStack_reversed": {
"entryPoint": 2763,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 2966,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 2481,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 2070,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1539,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1401,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 1566,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr": {
"entryPoint": 2319,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_bytes32_$dyn_memory_ptr": {
"entryPoint": 2291,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr": {
"entryPoint": 2374,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack": {
"entryPoint": 2302,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 2609,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 2859,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1647,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 2045,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1615,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1860,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1490,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 2661,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2562,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 2515,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1443,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1421,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 1610,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1416,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1411,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1426,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 1665,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes32": {
"entryPoint": 3021,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1870,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:12060:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:2"
},
"nodeType": "YulFunctionCall",
"src": "67:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:2",
"type": ""
}
],
"src": "7:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:2"
},
"nodeType": "YulFunctionCall",
"src": "187:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:2"
},
"nodeType": "YulFunctionCall",
"src": "310:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:2"
},
"nodeType": "YulFunctionCall",
"src": "433:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:2"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "505:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "515:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "533:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "540:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "529:3:2"
},
"nodeType": "YulFunctionCall",
"src": "529:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "549:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "545:3:2"
},
"nodeType": "YulFunctionCall",
"src": "545:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "525:3:2"
},
"nodeType": "YulFunctionCall",
"src": "525:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "515:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "498:6:2",
"type": ""
}
],
"src": "457:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "593:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "610:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "613:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "603:6:2"
},
"nodeType": "YulFunctionCall",
"src": "603:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "603:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "707:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "710:4:2",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "700:6:2"
},
"nodeType": "YulFunctionCall",
"src": "700:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "700:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "731:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "734:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "724:6:2"
},
"nodeType": "YulFunctionCall",
"src": "724:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "724:15:2"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "565:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "794:238:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "804:58:2",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "826:6:2"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "856:4:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "834:21:2"
},
"nodeType": "YulFunctionCall",
"src": "834:27:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "822:3:2"
},
"nodeType": "YulFunctionCall",
"src": "822:40:2"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "808:10:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "973:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "975:16:2"
},
"nodeType": "YulFunctionCall",
"src": "975:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "975:18:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "916:10:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "928:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "913:2:2"
},
"nodeType": "YulFunctionCall",
"src": "913:34:2"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "952:10:2"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "964:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "949:2:2"
},
"nodeType": "YulFunctionCall",
"src": "949:22:2"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "910:2:2"
},
"nodeType": "YulFunctionCall",
"src": "910:62:2"
},
"nodeType": "YulIf",
"src": "907:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1011:2:2",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1015:10:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1004:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1004:22:2"
},
"nodeType": "YulExpressionStatement",
"src": "1004:22:2"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "780:6:2",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "788:4:2",
"type": ""
}
],
"src": "751:281:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1079:88:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1089:30:2",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1099:18:2"
},
"nodeType": "YulFunctionCall",
"src": "1099:20:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1089:6:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1148:6:2"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1156:4:2"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1128:19:2"
},
"nodeType": "YulFunctionCall",
"src": "1128:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "1128:33:2"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1063:4:2",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1072:6:2",
"type": ""
}
],
"src": "1038:129:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1255:229:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1360:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1362:16:2"
},
"nodeType": "YulFunctionCall",
"src": "1362:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "1362:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1332:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1340:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1329:2:2"
},
"nodeType": "YulFunctionCall",
"src": "1329:30:2"
},
"nodeType": "YulIf",
"src": "1326:56:2"
},
{
"nodeType": "YulAssignment",
"src": "1392:25:2",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1404:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1412:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1400:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1400:17:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1392:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1454:23:2",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1466:4:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1472:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1462:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1462:15:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1454:4:2"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1239:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1250:4:2",
"type": ""
}
],
"src": "1173:311:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1579:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1599:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1589:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1589:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "1589:12:2"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "1490:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1658:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1668:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1683:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1690:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1679:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1679:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1668:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1640:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1650:7:2",
"type": ""
}
],
"src": "1613:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1790:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1800:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1829:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1811:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1811:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1800:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1772:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1782:7:2",
"type": ""
}
],
"src": "1745:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1890:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1947:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1956:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1959:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1949:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1949:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "1949:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1913:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1938:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1920:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1920:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1910:2:2"
},
"nodeType": "YulFunctionCall",
"src": "1910:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1903:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1903:43:2"
},
"nodeType": "YulIf",
"src": "1900:63:2"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1883:5:2",
"type": ""
}
],
"src": "1847:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2027:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2037:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2059:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2046:12:2"
},
"nodeType": "YulFunctionCall",
"src": "2046:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2037:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2102:5:2"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "2075:26:2"
},
"nodeType": "YulFunctionCall",
"src": "2075:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "2075:33:2"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2005:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2013:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2021:5:2",
"type": ""
}
],
"src": "1975:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2239:608:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2249:90:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2331:6:2"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2274:56:2"
},
"nodeType": "YulFunctionCall",
"src": "2274:64:2"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2258:15:2"
},
"nodeType": "YulFunctionCall",
"src": "2258:81:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2249:5:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2348:16:2",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "2359:5:2"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2352:3:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2381:5:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2388:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2374:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2374:21:2"
},
"nodeType": "YulExpressionStatement",
"src": "2374:21:2"
},
{
"nodeType": "YulAssignment",
"src": "2404:23:2",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2415:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2422:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2411:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2411:16:2"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2404:3:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2437:44:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2455:6:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2467:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2475:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "2463:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2463:17:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2451:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2451:30:2"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "2441:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2509:103:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "2523:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2523:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2523:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "2496:6:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2504:3:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2493:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2493:15:2"
},
"nodeType": "YulIf",
"src": "2490:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2697:144:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2712:21:2",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "2730:3:2"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "2716:10:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2754:3:2"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "2780:10:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2792:3:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "2759:20:2"
},
"nodeType": "YulFunctionCall",
"src": "2759:37:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2747:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2747:50:2"
},
"nodeType": "YulExpressionStatement",
"src": "2747:50:2"
},
{
"nodeType": "YulAssignment",
"src": "2810:21:2",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2821:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2826:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2817:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2817:14:2"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2810:3:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2650:3:2"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "2655:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2647:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2647:15:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2663:25:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2665:21:2",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2676:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2681:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2672:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2672:14:2"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2665:3:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2625:21:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2627:17:2",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2638:6:2"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2631:3:2",
"type": ""
}
]
}
]
},
"src": "2621:220:2"
}
]
},
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2209:6:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2217:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2225:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2233:5:2",
"type": ""
}
],
"src": "2137:710:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2947:293:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2996:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2998:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2998:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2998:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2975:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2983:4:2",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2971:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2971:17:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2990:3:2"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2967:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2967:27:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2960:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2960:35:2"
},
"nodeType": "YulIf",
"src": "2957:122:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3088:34:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3115:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3102:12:2"
},
"nodeType": "YulFunctionCall",
"src": "3102:20:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3092:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3131:103:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3207:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3215:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3203:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3203:17:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3222:6:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3230:3:2"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3140:62:2"
},
"nodeType": "YulFunctionCall",
"src": "3140:94:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3131:5:2"
}
]
}
]
},
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2925:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2933:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2941:5:2",
"type": ""
}
],
"src": "2870:370:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3291:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3301:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "3312:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3301:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3273:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3283:7:2",
"type": ""
}
],
"src": "3246:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3372:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3429:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3438:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3441:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3431:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3431:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "3431:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3395:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3420:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3402:17:2"
},
"nodeType": "YulFunctionCall",
"src": "3402:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3392:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3392:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3385:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3385:43:2"
},
"nodeType": "YulIf",
"src": "3382:63:2"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3365:5:2",
"type": ""
}
],
"src": "3329:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3509:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3519:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3541:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3528:12:2"
},
"nodeType": "YulFunctionCall",
"src": "3528:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3519:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3584:5:2"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3557:26:2"
},
"nodeType": "YulFunctionCall",
"src": "3557:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "3557:33:2"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3487:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3495:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3503:5:2",
"type": ""
}
],
"src": "3457:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3744:833:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3791:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3793:77:2"
},
"nodeType": "YulFunctionCall",
"src": "3793:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "3793:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3765:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3774:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3761:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3761:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3786:3:2",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3757:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3757:33:2"
},
"nodeType": "YulIf",
"src": "3754:120:2"
},
{
"nodeType": "YulBlock",
"src": "3884:302:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3899:45:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3930:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3941:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3926:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3926:17:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3913:12:2"
},
"nodeType": "YulFunctionCall",
"src": "3913:31:2"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3903:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3991:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3993:77:2"
},
"nodeType": "YulFunctionCall",
"src": "3993:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "3993:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3963:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3971:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3960:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3960:30:2"
},
"nodeType": "YulIf",
"src": "3957:117:2"
},
{
"nodeType": "YulAssignment",
"src": "4088:88:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4148:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4159:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4144:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4144:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4168:7:2"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4098:45:2"
},
"nodeType": "YulFunctionCall",
"src": "4098:78:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4088:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4196:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4211:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4225:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4215:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4241:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4276:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4287:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4272:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4272:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4296:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "4251:20:2"
},
"nodeType": "YulFunctionCall",
"src": "4251:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4241:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4324:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4339:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4353:2:2",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4343:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4369:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4404:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4415:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4400:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4400:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4424:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "4379:20:2"
},
"nodeType": "YulFunctionCall",
"src": "4379:53:2"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "4369:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4452:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4467:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4481:2:2",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4471:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4497:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4532:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4543:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4528:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4528:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4552:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "4507:20:2"
},
"nodeType": "YulFunctionCall",
"src": "4507:53:2"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "4497:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3690:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3701:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3713:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3721:6:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3729:6:2",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "3737:6:2",
"type": ""
}
],
"src": "3602:975:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4628:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4638:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "4649:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4638:7:2"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4610:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4620:7:2",
"type": ""
}
],
"src": "4583:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4731:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4748:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4771:5:2"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "4753:17:2"
},
"nodeType": "YulFunctionCall",
"src": "4753:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4741:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4741:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "4741:37:2"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4719:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4726:3:2",
"type": ""
}
],
"src": "4666:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4888:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4898:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4910:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4921:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4906:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4906:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4898:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4978:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4991:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5002:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4987:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4987:17:2"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "4934:43:2"
},
"nodeType": "YulFunctionCall",
"src": "4934:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "4934:71:2"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4860:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4872:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4883:4:2",
"type": ""
}
],
"src": "4790:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5143:704:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5189:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5191:77:2"
},
"nodeType": "YulFunctionCall",
"src": "5191:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "5191:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5164:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5173:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5160:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5160:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5185:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5156:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5156:32:2"
},
"nodeType": "YulIf",
"src": "5153:119:2"
},
{
"nodeType": "YulBlock",
"src": "5282:302:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5297:45:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5328:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5339:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5324:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5324:17:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5311:12:2"
},
"nodeType": "YulFunctionCall",
"src": "5311:31:2"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5301:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5389:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5391:77:2"
},
"nodeType": "YulFunctionCall",
"src": "5391:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "5391:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5361:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5369:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5358:2:2"
},
"nodeType": "YulFunctionCall",
"src": "5358:30:2"
},
"nodeType": "YulIf",
"src": "5355:117:2"
},
{
"nodeType": "YulAssignment",
"src": "5486:88:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5546:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5557:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5542:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5542:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5566:7:2"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5496:45:2"
},
"nodeType": "YulFunctionCall",
"src": "5496:78:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5486:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5594:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5609:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5623:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5613:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5639:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5674:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5685:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5670:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5670:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5694:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "5649:20:2"
},
"nodeType": "YulFunctionCall",
"src": "5649:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5639:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5722:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5737:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5751:2:2",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5741:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5767:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5802:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5813:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5798:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5798:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5822:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "5777:20:2"
},
"nodeType": "YulFunctionCall",
"src": "5777:53:2"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "5767:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5097:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5108:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5120:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5128:6:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5136:6:2",
"type": ""
}
],
"src": "5018:829:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5953:519:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5999:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "6001:77:2"
},
"nodeType": "YulFunctionCall",
"src": "6001:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "6001:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5974:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5983:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5970:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5970:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5995:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5966:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5966:32:2"
},
"nodeType": "YulIf",
"src": "5963:119:2"
},
{
"nodeType": "YulBlock",
"src": "6092:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6107:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6121:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6111:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6136:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6171:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6182:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6167:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6167:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6191:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "6146:20:2"
},
"nodeType": "YulFunctionCall",
"src": "6146:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6136:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6219:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6234:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6248:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6238:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6264:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6299:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6310:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6295:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6295:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6319:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6274:20:2"
},
"nodeType": "YulFunctionCall",
"src": "6274:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6264:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6347:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6362:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6376:2:2",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6366:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6392:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6427:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6438:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6423:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6423:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6447:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6402:20:2"
},
"nodeType": "YulFunctionCall",
"src": "6402:53:2"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6392:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5907:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5918:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5930:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5938:6:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5946:6:2",
"type": ""
}
],
"src": "5853:619:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6552:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6563:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6579:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6573:5:2"
},
"nodeType": "YulFunctionCall",
"src": "6573:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6563:6:2"
}
]
}
]
},
"name": "array_length_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6535:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6545:6:2",
"type": ""
}
],
"src": "6478:114:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6709:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6726:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6731:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6719:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6719:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "6719:19:2"
},
{
"nodeType": "YulAssignment",
"src": "6747:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6766:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6771:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6762:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6762:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "6747:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6681:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6686:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "6697:11:2",
"type": ""
}
],
"src": "6598:184:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6860:60:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6870:11:2",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "6878:3:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6870:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "6891:22:2",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "6903:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6908:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6899:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6899:14:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6891:4:2"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "6847:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "6855:4:2",
"type": ""
}
],
"src": "6788:132:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6981:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6998:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7021:5:2"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "7003:17:2"
},
"nodeType": "YulFunctionCall",
"src": "7003:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6991:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6991:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "6991:37:2"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6969:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6976:3:2",
"type": ""
}
],
"src": "6926:108:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7120:99:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7164:6:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7172:3:2"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32",
"nodeType": "YulIdentifier",
"src": "7130:33:2"
},
"nodeType": "YulFunctionCall",
"src": "7130:46:2"
},
"nodeType": "YulExpressionStatement",
"src": "7130:46:2"
},
{
"nodeType": "YulAssignment",
"src": "7185:28:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7203:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7208:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7199:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7199:14:2"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "7185:10:2"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_bytes32_to_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7093:6:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7101:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "7109:10:2",
"type": ""
}
],
"src": "7040:179:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7300:38:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7310:22:2",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "7322:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7327:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7318:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7318:14:2"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "7310:4:2"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "7287:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "7295:4:2",
"type": ""
}
],
"src": "7225:113:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7498:608:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7508:68:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7570:5:2"
}
],
"functionName": {
"name": "array_length_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7522:47:2"
},
"nodeType": "YulFunctionCall",
"src": "7522:54:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7512:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7585:93:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7666:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7671:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7592:73:2"
},
"nodeType": "YulFunctionCall",
"src": "7592:86:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7585:3:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7687:71:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7752:5:2"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7702:49:2"
},
"nodeType": "YulFunctionCall",
"src": "7702:56:2"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "7691:7:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7767:21:2",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "7781:7:2"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "7771:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7857:224:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7871:34:2",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "7898:6:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "7892:5:2"
},
"nodeType": "YulFunctionCall",
"src": "7892:13:2"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "7875:13:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7918:70:2",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "7969:13:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7984:3:2"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_bytes32_to_t_bytes32",
"nodeType": "YulIdentifier",
"src": "7925:43:2"
},
"nodeType": "YulFunctionCall",
"src": "7925:63:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7918:3:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8001:70:2",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "8064:6:2"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "8011:52:2"
},
"nodeType": "YulFunctionCall",
"src": "8011:60:2"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "8001:6:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7819:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7822:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7816:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7816:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "7830:18:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7832:14:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7841:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7844:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7837:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7837:9:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7832:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "7801:14:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7803:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "7812:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "7807:1:2",
"type": ""
}
]
}
]
},
"src": "7797:284:2"
},
{
"nodeType": "YulAssignment",
"src": "8090:10:2",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8097:3:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8090:3:2"
}
]
}
]
},
"name": "abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7477:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7484:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7493:3:2",
"type": ""
}
],
"src": "7374:732:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8260:225:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8270:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8282:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8293:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8278:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8278:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8270:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8317:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8328:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8313:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8313:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8336:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8342:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8332:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8332:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8306:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8306:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "8306:47:2"
},
{
"nodeType": "YulAssignment",
"src": "8362:116:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8464:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8473:4:2"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8370:93:2"
},
"nodeType": "YulFunctionCall",
"src": "8370:108:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8362:4:2"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8232:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8244:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8255:4:2",
"type": ""
}
],
"src": "8112:373:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8519:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8536:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8539:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8529:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8529:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "8529:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8633:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8636:4:2",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8626:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8626:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8626:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8657:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8660:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8650:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8650:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8650:15:2"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "8491:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8705:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8722:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8725:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8715:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8715:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "8715:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8819:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8822:4:2",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8812:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8812:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8812:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8843:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8846:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8836:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8836:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8836:15:2"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "8677:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8907:147:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8917:25:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8940:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8922:17:2"
},
"nodeType": "YulFunctionCall",
"src": "8922:20:2"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8917:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8951:25:2",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8974:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8956:17:2"
},
"nodeType": "YulFunctionCall",
"src": "8956:20:2"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8951:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8985:16:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8996:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8999:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8992:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8992:9:2"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "8985:3:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9025:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "9027:16:2"
},
"nodeType": "YulFunctionCall",
"src": "9027:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "9027:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "9017:1:2"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "9020:3:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "9014:2:2"
},
"nodeType": "YulFunctionCall",
"src": "9014:10:2"
},
"nodeType": "YulIf",
"src": "9011:36:2"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "8894:1:2",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "8897:1:2",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "8903:3:2",
"type": ""
}
],
"src": "8863:191:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9103:190:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9113:33:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9140:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "9122:17:2"
},
"nodeType": "YulFunctionCall",
"src": "9122:24:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9113:5:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9236:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "9238:16:2"
},
"nodeType": "YulFunctionCall",
"src": "9238:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "9238:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9161:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9168:66:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "9158:2:2"
},
"nodeType": "YulFunctionCall",
"src": "9158:77:2"
},
"nodeType": "YulIf",
"src": "9155:103:2"
},
{
"nodeType": "YulAssignment",
"src": "9267:20:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9278:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9285:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9274:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9274:13:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "9267:3:2"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9089:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "9099:3:2",
"type": ""
}
],
"src": "9060:233:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9364:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9381:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9404:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "9386:17:2"
},
"nodeType": "YulFunctionCall",
"src": "9386:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9374:6:2"
},
"nodeType": "YulFunctionCall",
"src": "9374:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "9374:37:2"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9352:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9359:3:2",
"type": ""
}
],
"src": "9299:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9488:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9505:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9528:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "9510:17:2"
},
"nodeType": "YulFunctionCall",
"src": "9510:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9498:6:2"
},
"nodeType": "YulFunctionCall",
"src": "9498:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "9498:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9476:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9483:3:2",
"type": ""
}
],
"src": "9423:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9701:288:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9711:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9723:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9734:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9719:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9719:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9711:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9791:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9804:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9815:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9800:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9800:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "9747:43:2"
},
"nodeType": "YulFunctionCall",
"src": "9747:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "9747:71:2"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "9872:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9885:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9896:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9881:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9881:18:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "9828:43:2"
},
"nodeType": "YulFunctionCall",
"src": "9828:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "9828:72:2"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "9954:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9967:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9978:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9963:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9963:18:2"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "9910:43:2"
},
"nodeType": "YulFunctionCall",
"src": "9910:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "9910:72:2"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_bytes32__to_t_address_t_uint256_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9657:9:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "9669:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "9677:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9685:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9696:4:2",
"type": ""
}
],
"src": "9547:442:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10121:206:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10131:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10143:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10154:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10139:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10139:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10131:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10211:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10224:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10235:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10220:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10220:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10167:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10167:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "10167:71:2"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "10292:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10305:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10316:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10301:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10301:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10248:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10248:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "10248:72:2"
}
]
},
"name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10085:9:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "10097:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10105:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10116:4:2",
"type": ""
}
],
"src": "9995:332:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10378:149:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10388:25:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10411:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "10393:17:2"
},
"nodeType": "YulFunctionCall",
"src": "10393:20:2"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10388:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "10422:25:2",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10445:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "10427:17:2"
},
"nodeType": "YulFunctionCall",
"src": "10427:20:2"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10422:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "10456:17:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10468:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10471:1:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10464:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10464:9:2"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "10456:4:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10498:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "10500:16:2"
},
"nodeType": "YulFunctionCall",
"src": "10500:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "10500:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "10489:4:2"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10495:1:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "10486:2:2"
},
"nodeType": "YulFunctionCall",
"src": "10486:11:2"
},
"nodeType": "YulIf",
"src": "10483:37:2"
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "10364:1:2",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "10367:1:2",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "10373:4:2",
"type": ""
}
],
"src": "10333:194:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10687:288:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10697:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10709:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10720:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10705:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10705:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10697:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10777:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10790:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10801:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10786:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10786:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10733:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10733:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "10733:71:2"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "10858:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10871:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10882:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10867:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10867:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10814:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10814:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "10814:72:2"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "10940:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10953:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10964:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10949:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10949:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10896:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10896:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "10896:72:2"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10643:9:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "10655:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "10663:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10671:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10682:4:2",
"type": ""
}
],
"src": "10533:442:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11135:288:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11145:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11157:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11168:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11153:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11153:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11145:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11225:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11238:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11249:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11234:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11234:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "11181:43:2"
},
"nodeType": "YulFunctionCall",
"src": "11181:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "11181:71:2"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "11306:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11319:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11330:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11315:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11315:18:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "11262:43:2"
},
"nodeType": "YulFunctionCall",
"src": "11262:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "11262:72:2"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "11388:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11401:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11412:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11397:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11397:18:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "11344:43:2"
},
"nodeType": "YulFunctionCall",
"src": "11344:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "11344:72:2"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11091:9:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "11103:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "11111:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11119:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11130:4:2",
"type": ""
}
],
"src": "10981:442:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11472:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11529:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11538:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11541:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11531:6:2"
},
"nodeType": "YulFunctionCall",
"src": "11531:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "11531:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11495:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11520:5:2"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "11502:17:2"
},
"nodeType": "YulFunctionCall",
"src": "11502:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "11492:2:2"
},
"nodeType": "YulFunctionCall",
"src": "11492:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "11485:6:2"
},
"nodeType": "YulFunctionCall",
"src": "11485:43:2"
},
"nodeType": "YulIf",
"src": "11482:63:2"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11465:5:2",
"type": ""
}
],
"src": "11429:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11620:80:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11630:22:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11645:6:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "11639:5:2"
},
"nodeType": "YulFunctionCall",
"src": "11639:13:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11630:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11688:5:2"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "11661:26:2"
},
"nodeType": "YulFunctionCall",
"src": "11661:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "11661:33:2"
}
]
},
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11598:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11606:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11614:5:2",
"type": ""
}
],
"src": "11557:143:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11783:274:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11829:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "11831:77:2"
},
"nodeType": "YulFunctionCall",
"src": "11831:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "11831:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11804:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11813:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11800:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11800:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11825:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "11796:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11796:32:2"
},
"nodeType": "YulIf",
"src": "11793:119:2"
},
{
"nodeType": "YulBlock",
"src": "11922:128:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11937:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11951:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11941:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "11966:74:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12012:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12023:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12008:3:2"
},
"nodeType": "YulFunctionCall",
"src": "12008:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "12032:7:2"
}
],
"functionName": {
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulIdentifier",
"src": "11976:31:2"
},
"nodeType": "YulFunctionCall",
"src": "11976:64:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11966:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11753:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "11764:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11776:6:2",
"type": ""
}
],
"src": "11706:351:2"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_bytes32_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(value0, pos) -> updatedPos {\n abi_encode_t_bytes32_to_t_bytes32(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // bytes32[] -> bytes32[]\n function abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bytes32_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_bytes32__to_t_address_t_uint256_t_bytes32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80637ef79f8c1461005157806384dd0d1214610081578063b31825bf146100b1578063d56154ab146100e1575b600080fd5b61006b6004803603810190610066919061077a565b610111565b6040516100789190610816565b60405180910390f35b61009b60048036038101906100969190610831565b6102b2565b6040516100a89190610816565b60405180910390f35b6100cb60048036038101906100c691906108a0565b610483565b6040516100d89190610816565b60405180910390f35b6100fb60048036038101906100f69190610831565b61050c565b60405161010891906109b1565b60405180910390f35b60008061011f86868661050c565b905060005b8151811015610184576001600080848481518110610145576101446109d3565b5b60200260200101518152602001908152602001600020600082825461016a9190610a31565b92505081905550808061017c90610a65565b915050610124565b50600080600090505b82518110156101f05760008382815181106101ab576101aa6109d3565b5b602002602001015190506000806000838152602001908152602001600020549050838111156101db578093508195505b505080806101e890610a65565b91505061018d565b5060005b825181101561025e57600080858360208110610213576102126109d3565b5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009055808061025690610a65565b9150506101f4565b50838110156102a8573081846040517f22bcb23b00000000000000000000000000000000000000000000000000000000815260040161029f93929190610acb565b60405180910390fd5b5050949350505050565b6000806102c085858561050c565b90506000816000815181106102d8576102d76109d3565b5b602002602001015190506000801b8103610346573086600081518110610301576103006109d3565b5b60200260200101516040517f2a0c203900000000000000000000000000000000000000000000000000000000815260040161033d929190610b02565b60405180910390fd5b600080600190505b83518110156104755783818151811061036a576103696109d3565b5b602002602001015191506000801b82036103d75730888281518110610392576103916109d3565b5b60200260200101516040517f2a0c20390000000000000000000000000000000000000000000000000000000081526004016103ce929190610b02565b60405180910390fd5b82821461045f5730886001836103ed9190610b2b565b815181106103fe576103fd6109d3565b5b6020026020010151898381518110610419576104186109d3565b5b60200260200101516040517fdbed4b2700000000000000000000000000000000000000000000000000000000815260040161045693929190610b5f565b60405180910390fd5b819250808061046d90610a65565b91505061034e565b508093505050509392505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663b31825bf8585856040518463ffffffff1660e01b81526004016104c293929190610b96565b602060405180830381865afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105039190610bf9565b90509392505050565b606060005b84518110156105715761053f8582815181106105305761052f6109d3565b5b60200260200101518585610483565b828281518110610552576105516109d3565b5b602002602001018181525050808061056990610a65565b915050610511565b509392505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105db82610592565b810181811067ffffffffffffffff821117156105fa576105f96105a3565b5b80604052505050565b600061060d610579565b905061061982826105d2565b919050565b600067ffffffffffffffff821115610639576106386105a3565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061067a8261064f565b9050919050565b61068a8161066f565b811461069557600080fd5b50565b6000813590506106a781610681565b92915050565b60006106c06106bb8461061e565b610603565b905080838252602082019050602084028301858111156106e3576106e261064a565b5b835b8181101561070c57806106f88882610698565b8452602084019350506020810190506106e5565b5050509392505050565b600082601f83011261072b5761072a61058d565b5b813561073b8482602086016106ad565b91505092915050565b6000819050919050565b61075781610744565b811461076257600080fd5b50565b6000813590506107748161074e565b92915050565b6000806000806080858703121561079457610793610583565b5b600085013567ffffffffffffffff8111156107b2576107b1610588565b5b6107be87828801610716565b94505060206107cf87828801610765565b93505060406107e087828801610765565b92505060606107f187828801610765565b91505092959194509250565b6000819050919050565b610810816107fd565b82525050565b600060208201905061082b6000830184610807565b92915050565b60008060006060848603121561084a57610849610583565b5b600084013567ffffffffffffffff81111561086857610867610588565b5b61087486828701610716565b935050602061088586828701610765565b925050604061089686828701610765565b9150509250925092565b6000806000606084860312156108b9576108b8610583565b5b60006108c786828701610698565b93505060206108d886828701610765565b92505060406108e986828701610765565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610928816107fd565b82525050565b600061093a838361091f565b60208301905092915050565b6000602082019050919050565b600061095e826108f3565b61096881856108fe565b93506109738361090f565b8060005b838110156109a457815161098b888261092e565b975061099683610946565b925050600181019050610977565b5085935050505092915050565b600060208201905081810360008301526109cb8184610953565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a3c82610744565b9150610a4783610744565b9250828201905080821115610a5f57610a5e610a02565b5b92915050565b6000610a7082610744565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aa257610aa1610a02565b5b600182019050919050565b610ab68161066f565b82525050565b610ac581610744565b82525050565b6000606082019050610ae06000830186610aad565b610aed6020830185610abc565b610afa6040830184610807565b949350505050565b6000604082019050610b176000830185610aad565b610b246020830184610aad565b9392505050565b6000610b3682610744565b9150610b4183610744565b9250828203905081811115610b5957610b58610a02565b5b92915050565b6000606082019050610b746000830186610aad565b610b816020830185610aad565b610b8e6040830184610aad565b949350505050565b6000606082019050610bab6000830186610aad565b610bb86020830185610abc565b610bc56040830184610abc565b949350505050565b610bd6816107fd565b8114610be157600080fd5b50565b600081519050610bf381610bcd565b92915050565b600060208284031215610c0f57610c0e610583565b5b6000610c1d84828501610be4565b9150509291505056fea2646970667358221220adf3938367e12aaf1153aa4152fcc50f0eb69564932dd70e1e74b27406c520bb64736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7EF79F8C EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x84DD0D12 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xB31825BF EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xD56154AB EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x77A JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x831 JUMP JUMPDEST PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x8A0 JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x831 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP2 SWAP1 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11F DUP7 DUP7 DUP7 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x184 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xA31 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP1 PUSH2 0x17C SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x124 JUMP JUMPDEST POP PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AB JUMPI PUSH2 0x1AA PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x1DB JUMPI DUP1 SWAP4 POP DUP2 SWAP6 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1E8 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x18D JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 PUSH1 0x20 DUP2 LT PUSH2 0x213 JUMPI PUSH2 0x212 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE DUP1 DUP1 PUSH2 0x256 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F4 JUMP JUMPDEST POP DUP4 DUP2 LT ISZERO PUSH2 0x2A8 JUMPI ADDRESS DUP2 DUP5 PUSH1 0x40 MLOAD PUSH32 0x22BCB23B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xACB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C0 DUP6 DUP6 DUP6 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D8 JUMPI PUSH2 0x2D7 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 SHL DUP2 SUB PUSH2 0x346 JUMPI ADDRESS DUP7 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x301 JUMPI PUSH2 0x300 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x2A0C203900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33D SWAP3 SWAP2 SWAP1 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x475 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x36A JUMPI PUSH2 0x369 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x3D7 JUMPI ADDRESS DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x392 JUMPI PUSH2 0x391 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x2A0C203900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CE SWAP3 SWAP2 SWAP1 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 EQ PUSH2 0x45F JUMPI ADDRESS DUP9 PUSH1 0x1 DUP4 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0xB2B JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3FE JUMPI PUSH2 0x3FD PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x419 JUMPI PUSH2 0x418 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xDBED4B2700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x456 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP3 POP DUP1 DUP1 PUSH2 0x46D SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x34E JUMP JUMPDEST POP DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB31825BF DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xBF9 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x571 JUMPI PUSH2 0x53F DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x530 JUMPI PUSH2 0x52F PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP6 PUSH2 0x483 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x552 JUMPI PUSH2 0x551 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x569 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x511 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5DB DUP3 PUSH2 0x592 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x5FA JUMPI PUSH2 0x5F9 PUSH2 0x5A3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60D PUSH2 0x579 JUMP JUMPDEST SWAP1 POP PUSH2 0x619 DUP3 DUP3 PUSH2 0x5D2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x638 PUSH2 0x5A3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67A DUP3 PUSH2 0x64F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68A DUP2 PUSH2 0x66F JUMP JUMPDEST DUP2 EQ PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6A7 DUP2 PUSH2 0x681 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6C0 PUSH2 0x6BB DUP5 PUSH2 0x61E JUMP JUMPDEST PUSH2 0x603 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x6E3 JUMPI PUSH2 0x6E2 PUSH2 0x64A JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x70C JUMPI DUP1 PUSH2 0x6F8 DUP9 DUP3 PUSH2 0x698 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6E5 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x72B JUMPI PUSH2 0x72A PUSH2 0x58D JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x73B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x6AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x757 DUP2 PUSH2 0x744 JUMP JUMPDEST DUP2 EQ PUSH2 0x762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x774 DUP2 PUSH2 0x74E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x794 JUMPI PUSH2 0x793 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH2 0x7B1 PUSH2 0x588 JUMP JUMPDEST JUMPDEST PUSH2 0x7BE DUP8 DUP3 DUP9 ADD PUSH2 0x716 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x7CF DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x7E0 DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x7F1 DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x810 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x82B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x807 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x84A JUMPI PUSH2 0x849 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x868 JUMPI PUSH2 0x867 PUSH2 0x588 JUMP JUMPDEST JUMPDEST PUSH2 0x874 DUP7 DUP3 DUP8 ADD PUSH2 0x716 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x885 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x896 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8B9 JUMPI PUSH2 0x8B8 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x8C7 DUP7 DUP3 DUP8 ADD PUSH2 0x698 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x8D8 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8E9 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x928 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x93A DUP4 DUP4 PUSH2 0x91F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95E DUP3 PUSH2 0x8F3 JUMP JUMPDEST PUSH2 0x968 DUP2 DUP6 PUSH2 0x8FE JUMP JUMPDEST SWAP4 POP PUSH2 0x973 DUP4 PUSH2 0x90F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9A4 JUMPI DUP2 MLOAD PUSH2 0x98B DUP9 DUP3 PUSH2 0x92E JUMP JUMPDEST SWAP8 POP PUSH2 0x996 DUP4 PUSH2 0x946 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x977 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x9CB DUP2 DUP5 PUSH2 0x953 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA3C DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH2 0xA47 DUP4 PUSH2 0x744 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xA5F JUMPI PUSH2 0xA5E PUSH2 0xA02 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA70 DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA02 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAB6 DUP2 PUSH2 0x66F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0x744 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAE0 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xAED PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xABC JUMP JUMPDEST PUSH2 0xAFA PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x807 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xB17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB36 DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH2 0xB41 DUP4 PUSH2 0x744 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0xB59 JUMPI PUSH2 0xB58 PUSH2 0xA02 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xB74 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB81 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB8E PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xBAB PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xBB8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xABC JUMP JUMPDEST PUSH2 0xBC5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xABC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xBD6 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP2 EQ PUSH2 0xBE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xBF3 DUP2 PUSH2 0xBCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC0F JUMPI PUSH2 0xC0E PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1D DUP5 DUP3 DUP6 ADD PUSH2 0xBE4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAD RETURN SWAP4 DUP4 PUSH8 0xE12AAF1153AA4152 0xFC 0xC5 0xF 0xE 0xB6 SWAP6 PUSH5 0x932DD70E1E PUSH21 0xB27406C520BB64736F6C6343000811003300000000 ",
"sourceMap": "100:4935:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:994;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2454:890;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;773:277;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1624:353;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4039:994;4213:19;4244:29;4276:59;4298:14;4314:7;4323:11;4276:21;:59::i;:::-;4244:91;;4350:9;4345:103;4369:12;:19;4365:1;:23;4345:103;;;4436:1;4409:6;:23;4416:12;4429:1;4416:15;;;;;;;;:::i;:::-;;;;;;;;4409:23;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;4390:3;;;;;:::i;:::-;;;;4345:103;;;;4457:20;4492:9;4504:1;4492:13;;4487:323;4511:12;:19;4507:1;:23;4487:323;;;4551:21;4575:12;4588:1;4575:15;;;;;;;;:::i;:::-;;;;;;;;4551:39;;4604:20;4627:6;:21;4634:13;4627:21;;;;;;;;;;;;4604:44;;4681:12;4666;:27;4662:138;;;4728:12;4713:27;;4772:13;4758:27;;4662:138;4537:273;;4532:3;;;;;:::i;:::-;;;;4487:323;;;;4824:9;4819:104;4843:12;:19;4839:1;:23;4819:104;;;4890:6;:22;4897:11;4909:1;4897:14;;;;;;;:::i;:::-;;;;;4890:22;;;;;;;;;;;;;;4883:29;;;4864:3;;;;;:::i;:::-;;;;4819:104;;;;4951:9;4936:12;:24;4932:94;;;4993:4;5000:12;5014:11;4969:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;4932:94;4234:799;;4039:994;;;;;;:::o;2454:890::-;2601:19;2632:29;2664:59;2686:14;2702:7;2711:11;2664:21;:59::i;:::-;2632:91;;2733:22;2758:12;2771:1;2758:15;;;;;;;;:::i;:::-;;;;;;;;2733:40;;2813:1;2805:10;;2787:14;:28;2783:93;;2851:4;2858:14;2873:1;2858:17;;;;;;;;:::i;:::-;;;;;;;;2824:52;;;;;;;;;;;;:::i;:::-;;;;;;;;2783:93;2886:21;2922:9;2934:1;2922:13;;2917:384;2941:12;:19;2937:1;:23;2917:384;;;2997:12;3010:1;2997:15;;;;;;;;:::i;:::-;;;;;;;;2981:31;;3055:1;3047:10;;3030:13;:27;3026:92;;3093:4;3100:14;3115:1;3100:17;;;;;;;;:::i;:::-;;;;;;;;3066:52;;;;;;;;;;;;:::i;:::-;;;;;;;;3026:92;3153:14;3136:13;:31;3132:114;;3200:4;3207:14;3224:1;3222;:3;;;;:::i;:::-;3207:19;;;;;;;;:::i;:::-;;;;;;;;3228:14;3243:1;3228:17;;;;;;;;:::i;:::-;;;;;;;;3176:70;;;;;;;;;;;;;:::i;:::-;;;;;;;;3132:114;3277:13;3260:30;;2962:3;;;;;:::i;:::-;;;;2917:384;;;;3324:13;3310:27;;2622:722;;;2454:890;;;;;:::o;773:277::-;912:19;972:13;957:49;;;1007:13;1022:7;1031:11;957:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;943:100;;773:277;;;;;:::o;1624:353::-;1775:29;1821:9;1816:155;1840:14;:21;1836:1;:25;1816:155;;;1900:60;1920:14;1935:1;1920:17;;;;;;;;:::i;:::-;;;;;;;;1939:7;1948:11;1900:19;:60::i;:::-;1882:12;1895:1;1882:15;;;;;;;;:::i;:::-;;;;;;;:78;;;;;1863:3;;;;;:::i;:::-;;;;1816:155;;;;1624:353;;;;;:::o;7:75:2:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:77::-;3283:7;3312:5;3301:16;;3246:77;;;:::o;3329:122::-;3402:24;3420:5;3402:24;:::i;:::-;3395:5;3392:35;3382:63;;3441:1;3438;3431:12;3382:63;3329:122;:::o;3457:139::-;3503:5;3541:6;3528:20;3519:29;;3557:33;3584:5;3557:33;:::i;:::-;3457:139;;;;:::o;3602:975::-;3713:6;3721;3729;3737;3786:3;3774:9;3765:7;3761:23;3757:33;3754:120;;;3793:79;;:::i;:::-;3754:120;3941:1;3930:9;3926:17;3913:31;3971:18;3963:6;3960:30;3957:117;;;3993:79;;:::i;:::-;3957:117;4098:78;4168:7;4159:6;4148:9;4144:22;4098:78;:::i;:::-;4088:88;;3884:302;4225:2;4251:53;4296:7;4287:6;4276:9;4272:22;4251:53;:::i;:::-;4241:63;;4196:118;4353:2;4379:53;4424:7;4415:6;4404:9;4400:22;4379:53;:::i;:::-;4369:63;;4324:118;4481:2;4507:53;4552:7;4543:6;4532:9;4528:22;4507:53;:::i;:::-;4497:63;;4452:118;3602:975;;;;;;;:::o;4583:77::-;4620:7;4649:5;4638:16;;4583:77;;;:::o;4666:118::-;4753:24;4771:5;4753:24;:::i;:::-;4748:3;4741:37;4666:118;;:::o;4790:222::-;4883:4;4921:2;4910:9;4906:18;4898:26;;4934:71;5002:1;4991:9;4987:17;4978:6;4934:71;:::i;:::-;4790:222;;;;:::o;5018:829::-;5120:6;5128;5136;5185:2;5173:9;5164:7;5160:23;5156:32;5153:119;;;5191:79;;:::i;:::-;5153:119;5339:1;5328:9;5324:17;5311:31;5369:18;5361:6;5358:30;5355:117;;;5391:79;;:::i;:::-;5355:117;5496:78;5566:7;5557:6;5546:9;5542:22;5496:78;:::i;:::-;5486:88;;5282:302;5623:2;5649:53;5694:7;5685:6;5674:9;5670:22;5649:53;:::i;:::-;5639:63;;5594:118;5751:2;5777:53;5822:7;5813:6;5802:9;5798:22;5777:53;:::i;:::-;5767:63;;5722:118;5018:829;;;;;:::o;5853:619::-;5930:6;5938;5946;5995:2;5983:9;5974:7;5970:23;5966:32;5963:119;;;6001:79;;:::i;:::-;5963:119;6121:1;6146:53;6191:7;6182:6;6171:9;6167:22;6146:53;:::i;:::-;6136:63;;6092:117;6248:2;6274:53;6319:7;6310:6;6299:9;6295:22;6274:53;:::i;:::-;6264:63;;6219:118;6376:2;6402:53;6447:7;6438:6;6427:9;6423:22;6402:53;:::i;:::-;6392:63;;6347:118;5853:619;;;;;:::o;6478:114::-;6545:6;6579:5;6573:12;6563:22;;6478:114;;;:::o;6598:184::-;6697:11;6731:6;6726:3;6719:19;6771:4;6766:3;6762:14;6747:29;;6598:184;;;;:::o;6788:132::-;6855:4;6878:3;6870:11;;6908:4;6903:3;6899:14;6891:22;;6788:132;;;:::o;6926:108::-;7003:24;7021:5;7003:24;:::i;:::-;6998:3;6991:37;6926:108;;:::o;7040:179::-;7109:10;7130:46;7172:3;7164:6;7130:46;:::i;:::-;7208:4;7203:3;7199:14;7185:28;;7040:179;;;;:::o;7225:113::-;7295:4;7327;7322:3;7318:14;7310:22;;7225:113;;;:::o;7374:732::-;7493:3;7522:54;7570:5;7522:54;:::i;:::-;7592:86;7671:6;7666:3;7592:86;:::i;:::-;7585:93;;7702:56;7752:5;7702:56;:::i;:::-;7781:7;7812:1;7797:284;7822:6;7819:1;7816:13;7797:284;;;7898:6;7892:13;7925:63;7984:3;7969:13;7925:63;:::i;:::-;7918:70;;8011:60;8064:6;8011:60;:::i;:::-;8001:70;;7857:224;7844:1;7841;7837:9;7832:14;;7797:284;;;7801:14;8097:3;8090:10;;7498:608;;;7374:732;;;;:::o;8112:373::-;8255:4;8293:2;8282:9;8278:18;8270:26;;8342:9;8336:4;8332:20;8328:1;8317:9;8313:17;8306:47;8370:108;8473:4;8464:6;8370:108;:::i;:::-;8362:116;;8112:373;;;;:::o;8491:180::-;8539:77;8536:1;8529:88;8636:4;8633:1;8626:15;8660:4;8657:1;8650:15;8677:180;8725:77;8722:1;8715:88;8822:4;8819:1;8812:15;8846:4;8843:1;8836:15;8863:191;8903:3;8922:20;8940:1;8922:20;:::i;:::-;8917:25;;8956:20;8974:1;8956:20;:::i;:::-;8951:25;;8999:1;8996;8992:9;8985:16;;9020:3;9017:1;9014:10;9011:36;;;9027:18;;:::i;:::-;9011:36;8863:191;;;;:::o;9060:233::-;9099:3;9122:24;9140:5;9122:24;:::i;:::-;9113:33;;9168:66;9161:5;9158:77;9155:103;;9238:18;;:::i;:::-;9155:103;9285:1;9278:5;9274:13;9267:20;;9060:233;;;:::o;9299:118::-;9386:24;9404:5;9386:24;:::i;:::-;9381:3;9374:37;9299:118;;:::o;9423:::-;9510:24;9528:5;9510:24;:::i;:::-;9505:3;9498:37;9423:118;;:::o;9547:442::-;9696:4;9734:2;9723:9;9719:18;9711:26;;9747:71;9815:1;9804:9;9800:17;9791:6;9747:71;:::i;:::-;9828:72;9896:2;9885:9;9881:18;9872:6;9828:72;:::i;:::-;9910;9978:2;9967:9;9963:18;9954:6;9910:72;:::i;:::-;9547:442;;;;;;:::o;9995:332::-;10116:4;10154:2;10143:9;10139:18;10131:26;;10167:71;10235:1;10224:9;10220:17;10211:6;10167:71;:::i;:::-;10248:72;10316:2;10305:9;10301:18;10292:6;10248:72;:::i;:::-;9995:332;;;;;:::o;10333:194::-;10373:4;10393:20;10411:1;10393:20;:::i;:::-;10388:25;;10427:20;10445:1;10427:20;:::i;:::-;10422:25;;10471:1;10468;10464:9;10456:17;;10495:1;10489:4;10486:11;10483:37;;;10500:18;;:::i;:::-;10483:37;10333:194;;;;:::o;10533:442::-;10682:4;10720:2;10709:9;10705:18;10697:26;;10733:71;10801:1;10790:9;10786:17;10777:6;10733:71;:::i;:::-;10814:72;10882:2;10871:9;10867:18;10858:6;10814:72;:::i;:::-;10896;10964:2;10953:9;10949:18;10940:6;10896:72;:::i;:::-;10533:442;;;;;;:::o;10981:::-;11130:4;11168:2;11157:9;11153:18;11145:26;;11181:71;11249:1;11238:9;11234:17;11225:6;11181:71;:::i;:::-;11262:72;11330:2;11319:9;11315:18;11306:6;11262:72;:::i;:::-;11344;11412:2;11401:9;11397:18;11388:6;11344:72;:::i;:::-;10981:442;;;;;;:::o;11429:122::-;11502:24;11520:5;11502:24;:::i;:::-;11495:5;11492:35;11482:63;;11541:1;11538;11531:12;11482:63;11429:122;:::o;11557:143::-;11614:5;11645:6;11639:13;11630:22;;11661:33;11688:5;11661:33;:::i;:::-;11557:143;;;;:::o;11706:351::-;11776:6;11825:2;11813:9;11804:7;11800:23;11796:32;11793:119;;;11831:79;;:::i;:::-;11793:119;11951:1;11976:64;12032:7;12023:6;12012:9;12008:22;11976:64;:::i;:::-;11966:74;;11922:128;11706:351;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "632800",
"executionCost": "664",
"totalCost": "633464"
},
"external": {
"getAgreedOnHeader(address[],uint256,uint256)": "infinite",
"getHeaderFromOracle(address,uint256,uint256)": "infinite",
"getHeaderFromThreshold(address[],uint256,uint256,uint256)": "infinite",
"getHeadersFromOracles(address[],uint256,uint256)": "infinite"
}
},
"methodIdentifiers": {
"getAgreedOnHeader(address[],uint256,uint256)": "84dd0d12",
"getHeaderFromOracle(address,uint256,uint256)": "b31825bf",
"getHeaderFromThreshold(address[],uint256,uint256,uint256)": "7ef79f8c",
"getHeadersFromOracles(address[],uint256,uint256)": "d56154ab"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "emitter",
"type": "address"
},
{
"internalType": "address",
"name": "oracleAdapter",
"type": "address"
}
],
"name": "OracleDidNotReport",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "emitter",
"type": "address"
},
{
"internalType": "address",
"name": "oracleOne",
"type": "address"
},
{
"internalType": "address",
"name": "oracleTwo",
"type": "address"
}
],
"name": "OraclesDisagree",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "highestCount",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"name": "ThresholdNotMet",
"type": "error"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "oracleAdapters",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getAgreedOnHeader",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "oracleAdapter",
"type": "address"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getHeaderFromOracle",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "oracleAdapters",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "threshold",
"type": "uint256"
}
],
"name": "getHeaderFromThreshold",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "oracleAdapters",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getHeadersFromOracles",
"outputs": [
{
"internalType": "bytes32[]",
"name": "blockHeaders",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "emitter",
"type": "address"
},
{
"internalType": "address",
"name": "oracleAdapter",
"type": "address"
}
],
"name": "OracleDidNotReport",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "emitter",
"type": "address"
},
{
"internalType": "address",
"name": "oracleOne",
"type": "address"
},
{
"internalType": "address",
"name": "oracleTwo",
"type": "address"
}
],
"name": "OraclesDisagree",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "highestCount",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"name": "ThresholdNotMet",
"type": "error"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "oracleAdapters",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getAgreedOnHeader",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "oracleAdapter",
"type": "address"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getHeaderFromOracle",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "oracleAdapters",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "threshold",
"type": "uint256"
}
],
"name": "getHeaderFromThreshold",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "oracleAdapters",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getHeadersFromOracles",
"outputs": [
{
"internalType": "bytes32[]",
"name": "blockHeaders",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"getAgreedOnHeader(address[],uint256,uint256)": {
"details": "Returns the blockheader universally agreed upon by a given set of oracles.",
"params": {
"blockNumber": "Block number for which to return headers.",
"chainId": "Id of the chain to query.",
"oracleAdapters": "Array of address for the oracle adapters to query."
},
"returns": {
"blockHeader": "Block header agreed on by the given set of oracle adapters."
}
},
"getHeaderFromOracle(address,uint256,uint256)": {
"details": "Returns the block header reported by a given oracle for a given block.",
"params": {
"blockNumber": "Block number for which to return a header.",
"chainId": "Id of the chain to query.",
"oracleAdapter": "Address of the oracle adapter to query."
},
"returns": {
"blockHeader": "Block header reported by the given oracle adapter for the given block number."
}
},
"getHeaderFromThreshold(address[],uint256,uint256,uint256)": {
"details": "Returns the blockheader agreed upon by a threshold of given header oracles.",
"params": {
"blockNumber": "Block number for which to return headers.",
"chainId": "Id of the chain to query.",
"oracleAdapters": "Array of address for the oracle adapters to query.",
"threshold": "Threshold of oracles that must report the same header for the given block. `threshold` MUST be `<= oracleAdapters.length && > oracleAdapters.length / 2`."
},
"returns": {
"blockHeader": "Block header reported by the required threshold of given oracle adapters for the given block number."
}
},
"getHeadersFromOracles(address[],uint256,uint256)": {
"details": "Returns the block headers for a given block reported by a given set of oracles.",
"params": {
"blockNumber": "Block number for which to return headers.",
"chainId": "Id of the chain to query.",
"oracleAdapters": "Array of address for the oracle adapters to query, MUST be provided in numerical order from smallest to largest."
},
"returns": {
"blockHeaders": "Array of block header reported by the given oracle adapters for the given block number."
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"getAgreedOnHeader(address[],uint256,uint256)": {
"notice": "MUST revert if oracles disagree on the header or if an oracle does not report."
},
"getHeaderFromThreshold(address[],uint256,uint256,uint256)": {
"notice": "This method MUST revert if the oracleAdapters array contains duplicates."
},
"getHeadersFromOracles(address[],uint256,uint256)": {
"notice": "This method MUST revert if the oracleAdapters array contains duplicates."
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"Hashi.sol": "Hashi"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"Hashi.sol": {
"keccak256": "0x0c09a6871a97a4f10afe673f5a2507773fab9bcbaf064a2f419a4e6629d3f88a",
"license": "LGPL-3.0-only",
"urls": [
"bzz-raw://236ab7c086c3f83433af9aa71632d39dc64ec2d971cf950ca555d615785136f3",
"dweb:/ipfs/QmNwNJNu4Sw3v11qDzbYwQdWDkokBUwWJznLsPzRgSXZJL"
]
},
"IOracleAdapter.sol": {
"keccak256": "0x7bea3758157ec2715a450dec19e29bb183da43c23113b5f34e87335dadfb5a81",
"license": "LGPL-3.0-only",
"urls": [
"bzz-raw://f650ff1d5348117edab7bf2724f1886ee4fbefa0250ba18b975168e23d626f62",
"dweb:/ipfs/QmZNtD7WVBEYUbKWD7DQ4SaqdwwjwczYC7mFpehmMPSRzg"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"getHeaderFromOracle(address,uint256,uint256)": "b31825bf"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "oracleAdapter",
"type": "address"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getHeaderFromOracle",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "oracleAdapter",
"type": "address"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getHeaderFromOracle",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"IOracleAdapter.sol": "IOracleAdapter"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"IOracleAdapter.sol": {
"keccak256": "0x7bea3758157ec2715a450dec19e29bb183da43c23113b5f34e87335dadfb5a81",
"license": "LGPL-3.0-only",
"urls": [
"bzz-raw://f650ff1d5348117edab7bf2724f1886ee4fbefa0250ba18b975168e23d626f62",
"dweb:/ipfs/QmZNtD7WVBEYUbKWD7DQ4SaqdwwjwczYC7mFpehmMPSRzg"
]
}
},
"version": 1
}
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity ^0.8.17;
import "./IOracleAdapter.sol";
contract Hashi {
mapping(bytes32 => uint256) counts;
error OracleDidNotReport(address emitter, address oracleAdapter);
error OraclesDisagree(address emitter, address oracleOne, address oracleTwo);
error ThresholdNotMet(address, uint256 highestCount, bytes32 blockHeader);
/// @dev Returns the block header reported by a given oracle for a given block.
/// @param oracleAdapter Address of the oracle adapter to query.
/// @param chainId Id of the chain to query.
/// @param blockNumber Block number for which to return a header.
/// @return blockHeader Block header reported by the given oracle adapter for the given block number.
function getHeaderFromOracle(
address oracleAdapter,
uint256 chainId,
uint256 blockNumber)
public view returns(bytes32 blockHeader) {
blockHeader = IOracleAdapter(oracleAdapter).getHeaderFromOracle(oracleAdapter, chainId, blockNumber);
}
/// @dev Returns the block headers for a given block reported by a given set of oracles.
/// @param oracleAdapters Array of address for the oracle adapters to query, MUST be provided in numerical order from smallest to largest.
/// @param chainId Id of the chain to query.
/// @param blockNumber Block number for which to return headers.
/// @return blockHeaders Array of block header reported by the given oracle adapters for the given block number.
/// @notice This method MUST revert if the oracleAdapters array contains duplicates.
function getHeadersFromOracles(
address[] memory oracleAdapters,
uint256 chainId,
uint256 blockNumber)
public view returns(bytes32[] memory blockHeaders) {
for (uint256 i = 0; i < oracleAdapters.length; i++) {
blockHeaders[i] = getHeaderFromOracle(oracleAdapters[i], chainId, blockNumber);
}
}
/// @dev Returns the blockheader universally agreed upon by a given set of oracles.
/// @param oracleAdapters Array of address for the oracle adapters to query.
/// @param chainId Id of the chain to query.
/// @param blockNumber Block number for which to return headers.
/// @return blockHeader Block header agreed on by the given set of oracle adapters.
/// @notice MUST revert if oracles disagree on the header or if an oracle does not report.
function getAgreedOnHeader(
address[] memory oracleAdapters,
uint256 chainId,
uint256 blockNumber)
public view returns(bytes32 blockHeader) {
bytes32[] memory blockHeaders = getHeadersFromOracles(oracleAdapters, chainId, blockNumber);
bytes32 previousHeader = blockHeaders[0];
if (previousHeader == bytes32(0)) revert OracleDidNotReport(address(this), oracleAdapters[0]);
bytes32 currentHeader;
for (uint256 i = 1; i < blockHeaders.length; i++) {
currentHeader = blockHeaders[i];
if (currentHeader == bytes32(0)) revert OracleDidNotReport(address(this), oracleAdapters[i]);
if (currentHeader != previousHeader) revert OraclesDisagree(address(this), oracleAdapters[i-1], oracleAdapters[i]);
previousHeader = currentHeader;
}
blockHeader = currentHeader;
}
/// @dev Returns the blockheader agreed upon by a threshold of given header oracles.
/// @param oracleAdapters Array of address for the oracle adapters to query.
/// @param chainId Id of the chain to query.
/// @param blockNumber Block number for which to return headers.
/// @param threshold Threshold of oracles that must report the same header for the given block. `threshold` MUST be `<= oracleAdapters.length && > oracleAdapters.length / 2`.
/// @return blockHeader Block header reported by the required threshold of given oracle adapters for the given block number.
/// @notice This method MUST revert if the oracleAdapters array contains duplicates.
function getHeaderFromThreshold(
address[] memory oracleAdapters,
uint256 chainId,
uint256 blockNumber,
uint256 threshold)
public returns(bytes32 blockHeader) {
bytes32[] memory blockHeaders = getHeadersFromOracles(oracleAdapters, chainId, blockNumber);
for (uint256 i = 0; i < blockHeaders.length; i++) {
counts[blockHeaders[i]] += 1;
}
uint256 highestCount;
for (uint256 i = 0; i < blockHeaders.length; i++) {
bytes32 currentHeader = blockHeaders[i];
uint256 currentCount = counts[currentHeader];
if (currentCount > highestCount) {
highestCount = currentCount;
blockHeader = currentHeader;
}
}
for (uint256 i = 0; i < blockHeaders.length; i++) {
delete counts[blockHeader[i]];
}
if (highestCount < threshold) revert ThresholdNotMet(address(this), highestCount, blockHeader);
}
}
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity ^0.8.17;
interface IOracleAdapter {
function getHeaderFromOracle(
address oracleAdapter,
uint256 chainId,
uint256 blockNumber)
external view returns(bytes32 blockHeader);
}
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity ^0.8.17;
import "./Hashi.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
contract OwnableHashi is OwnableUpgradeable {
address public hashi;
mapping(uint256 => address[]) public oracleAdapters;
function getHeader(uint256 chainId, uint256 blockNumber) public view returns(bytes32 blockHeader) {
Hashi(hashi).getAgreedOnHeader(oracleAdapters, chainId, blockNumber);
}
function setHashi(address _hashi) public onlyOwner {
hashi = _hashi;
}
function setOracleAdapters(uint256 chainId, address[] memory _oracleAdapters) public onlyOwner {
oracleAdapters = _oracleAdapters;
}
/// how to handle timeouts for oracles that are not reporting?
/// when should governance be able to remove an oracle?
}
This file has been truncated, but you can view the full file.
{
"id": "a70520eba6b49958864c2642663146b2",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.17",
"solcLongVersion": "0.8.17+commit.8df45f5f",
"input": {
"language": "Solidity",
"sources": {
"Hashi.sol": {
"content": "// SPDX-License-Identifier: LGPL-3.0-only\npragma solidity ^0.8.17;\n\nimport \"./IOracleAdapter.sol\";\n\ncontract Hashi {\n mapping(bytes32 => uint256) counts;\n\n error OracleDidNotReport(address emitter, address oracleAdapter);\n error OraclesDisagree(address emitter, address oracleOne, address oracleTwo);\n error ThresholdNotMet(address, uint256 highestCount, bytes32 blockHeader);\n\n\n /// @dev Returns the block header reported by a given oracle for a given block.\n /// @param oracleAdapter Address of the oracle adapter to query.\n /// @param chainId Id of the chain to query.\n /// @param blockNumber Block number for which to return a header.\n /// @return blockHeader Block header reported by the given oracle adapter for the given block number.\n function getHeaderFromOracle(\n address oracleAdapter,\n uint256 chainId,\n uint256 blockNumber)\n public view returns(bytes32 blockHeader) {\n blockHeader = IOracleAdapter(oracleAdapter).getHeaderFromOracle(oracleAdapter, chainId, blockNumber);\n }\n \n /// @dev Returns the block headers for a given block reported by a given set of oracles.\n /// @param oracleAdapters Array of address for the oracle adapters to query, MUST be provided in numerical order from smallest to largest.\n /// @param chainId Id of the chain to query.\n /// @param blockNumber Block number for which to return headers.\n /// @return blockHeaders Array of block header reported by the given oracle adapters for the given block number.\n /// @notice This method MUST revert if the oracleAdapters array contains duplicates.\n function getHeadersFromOracles(\n address[] memory oracleAdapters,\n uint256 chainId,\n uint256 blockNumber)\n public view returns(bytes32[] memory blockHeaders) {\n for (uint256 i = 0; i < oracleAdapters.length; i++) {\n blockHeaders[i] = getHeaderFromOracle(oracleAdapters[i], chainId, blockNumber);\n }\n }\n\n\n /// @dev Returns the blockheader universally agreed upon by a given set of oracles.\n /// @param oracleAdapters Array of address for the oracle adapters to query.\n /// @param chainId Id of the chain to query.\n /// @param blockNumber Block number for which to return headers.\n /// @return blockHeader Block header agreed on by the given set of oracle adapters.\n /// @notice MUST revert if oracles disagree on the header or if an oracle does not report.\n function getAgreedOnHeader(\n address[] memory oracleAdapters,\n uint256 chainId,\n uint256 blockNumber)\n public view returns(bytes32 blockHeader) {\n bytes32[] memory blockHeaders = getHeadersFromOracles(oracleAdapters, chainId, blockNumber);\n bytes32 previousHeader = blockHeaders[0];\n if (previousHeader == bytes32(0)) revert OracleDidNotReport(address(this), oracleAdapters[0]);\n bytes32 currentHeader;\n for (uint256 i = 1; i < blockHeaders.length; i++) {\n currentHeader = blockHeaders[i];\n if (currentHeader == bytes32(0)) revert OracleDidNotReport(address(this), oracleAdapters[i]);\n if (currentHeader != previousHeader) revert OraclesDisagree(address(this), oracleAdapters[i-1], oracleAdapters[i]);\n previousHeader = currentHeader;\n }\n blockHeader = currentHeader;\n }\n \n /// @dev Returns the blockheader agreed upon by a threshold of given header oracles.\n /// @param oracleAdapters Array of address for the oracle adapters to query.\n /// @param chainId Id of the chain to query.\n /// @param blockNumber Block number for which to return headers.\n /// @param threshold Threshold of oracles that must report the same header for the given block. `threshold` MUST be `<= oracleAdapters.length && > oracleAdapters.length / 2`.\n /// @return blockHeader Block header reported by the required threshold of given oracle adapters for the given block number.\n /// @notice This method MUST revert if the oracleAdapters array contains duplicates.\n function getHeaderFromThreshold(\n address[] memory oracleAdapters,\n uint256 chainId,\n uint256 blockNumber,\n uint256 threshold)\n public returns(bytes32 blockHeader) {\n bytes32[] memory blockHeaders = getHeadersFromOracles(oracleAdapters, chainId, blockNumber);\n for (uint256 i = 0; i < blockHeaders.length; i++) {\n counts[blockHeaders[i]] += 1;\n }\n uint256 highestCount;\n for (uint256 i = 0; i < blockHeaders.length; i++) {\n bytes32 currentHeader = blockHeaders[i];\n uint256 currentCount = counts[currentHeader];\n if (currentCount > highestCount) {\n highestCount = currentCount;\n blockHeader = currentHeader;\n }\n }\n for (uint256 i = 0; i < blockHeaders.length; i++) {\n delete counts[blockHeader[i]];\n }\n if (highestCount < threshold) revert ThresholdNotMet(address(this), highestCount, blockHeader);\n }\n}"
},
"IOracleAdapter.sol": {
"content": "// SPDX-License-Identifier: LGPL-3.0-only\npragma solidity ^0.8.17;\n\ninterface IOracleAdapter {\n function getHeaderFromOracle(\n address oracleAdapter,\n uint256 chainId,\n uint256 blockNumber)\n external view returns(bytes32 blockHeader);\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"Hashi.sol": {
"Hashi": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "emitter",
"type": "address"
},
{
"internalType": "address",
"name": "oracleAdapter",
"type": "address"
}
],
"name": "OracleDidNotReport",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "emitter",
"type": "address"
},
{
"internalType": "address",
"name": "oracleOne",
"type": "address"
},
{
"internalType": "address",
"name": "oracleTwo",
"type": "address"
}
],
"name": "OraclesDisagree",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "highestCount",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"name": "ThresholdNotMet",
"type": "error"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "oracleAdapters",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getAgreedOnHeader",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "oracleAdapter",
"type": "address"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getHeaderFromOracle",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "oracleAdapters",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "threshold",
"type": "uint256"
}
],
"name": "getHeaderFromThreshold",
"outputs": [
{
"internalType": "bytes32",
"name": "blockHeader",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "oracleAdapters",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "getHeadersFromOracles",
"outputs": [
{
"internalType": "bytes32[]",
"name": "blockHeaders",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"getAgreedOnHeader(address[],uint256,uint256)": {
"details": "Returns the blockheader universally agreed upon by a given set of oracles.",
"params": {
"blockNumber": "Block number for which to return headers.",
"chainId": "Id of the chain to query.",
"oracleAdapters": "Array of address for the oracle adapters to query."
},
"returns": {
"blockHeader": "Block header agreed on by the given set of oracle adapters."
}
},
"getHeaderFromOracle(address,uint256,uint256)": {
"details": "Returns the block header reported by a given oracle for a given block.",
"params": {
"blockNumber": "Block number for which to return a header.",
"chainId": "Id of the chain to query.",
"oracleAdapter": "Address of the oracle adapter to query."
},
"returns": {
"blockHeader": "Block header reported by the given oracle adapter for the given block number."
}
},
"getHeaderFromThreshold(address[],uint256,uint256,uint256)": {
"details": "Returns the blockheader agreed upon by a threshold of given header oracles.",
"params": {
"blockNumber": "Block number for which to return headers.",
"chainId": "Id of the chain to query.",
"oracleAdapters": "Array of address for the oracle adapters to query.",
"threshold": "Threshold of oracles that must report the same header for the given block. `threshold` MUST be `<= oracleAdapters.length && > oracleAdapters.length / 2`."
},
"returns": {
"blockHeader": "Block header reported by the required threshold of given oracle adapters for the given block number."
}
},
"getHeadersFromOracles(address[],uint256,uint256)": {
"details": "Returns the block headers for a given block reported by a given set of oracles.",
"params": {
"blockNumber": "Block number for which to return headers.",
"chainId": "Id of the chain to query.",
"oracleAdapters": "Array of address for the oracle adapters to query, MUST be provided in numerical order from smallest to largest."
},
"returns": {
"blockHeaders": "Array of block header reported by the given oracle adapters for the given block number."
}
}
},
"version": 1
},
"evm": {
"assembly": " /* \"Hashi.sol\":100:5035 contract Hashi {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Hashi.sol\":100:5035 contract Hashi {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x7ef79f8c\n eq\n tag_3\n jumpi\n dup1\n 0x84dd0d12\n eq\n tag_4\n jumpi\n dup1\n 0xb31825bf\n eq\n tag_5\n jumpi\n dup1\n 0xd56154ab\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Hashi.sol\":4039:5033 function getHeaderFromThreshold(... */\n tag_3:\n tag_7\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n tag_10\n jump\t// in\n tag_7:\n mload(0x40)\n tag_11\n swap2\n swap1\n tag_12\n jump\t// in\n tag_11:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Hashi.sol\":2454:3344 function getAgreedOnHeader(... */\n tag_4:\n tag_13\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_14\n swap2\n swap1\n tag_15\n jump\t// in\n tag_14:\n tag_16\n jump\t// in\n tag_13:\n mload(0x40)\n tag_17\n swap2\n swap1\n tag_12\n jump\t// in\n tag_17:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Hashi.sol\":773:1050 function getHeaderFromOracle(... */\n tag_5:\n tag_18\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n tag_21\n jump\t// in\n tag_18:\n mload(0x40)\n tag_22\n swap2\n swap1\n tag_12\n jump\t// in\n tag_22:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Hashi.sol\":1624:1977 function getHeadersFromOracles(... */\n tag_6:\n tag_23\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_24\n swap2\n swap1\n tag_15\n jump\t// in\n tag_24:\n tag_25\n jump\t// in\n tag_23:\n mload(0x40)\n tag_26\n swap2\n swap1\n tag_27\n jump\t// in\n tag_26:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Hashi.sol\":4039:5033 function getHeaderFromThreshold(... */\n tag_10:\n /* \"Hashi.sol\":4213:4232 bytes32 blockHeader */\n 0x00\n /* \"Hashi.sol\":4244:4273 bytes32[] memory blockHeaders */\n dup1\n /* \"Hashi.sol\":4276:4335 getHeadersFromOracles(oracleAdapters, chainId, blockNumber) */\n tag_29\n /* \"Hashi.sol\":4298:4312 oracleAdapters */\n dup7\n /* \"Hashi.sol\":4314:4321 chainId */\n dup7\n /* \"Hashi.sol\":4323:4334 blockNumber */\n dup7\n /* \"Hashi.sol\":4276:4297 getHeadersFromOracles */\n tag_25\n /* \"Hashi.sol\":4276:4335 getHeadersFromOracles(oracleAdapters, chainId, blockNumber) */\n jump\t// in\n tag_29:\n /* \"Hashi.sol\":4244:4335 bytes32[] memory blockHeaders = getHeadersFromOracles(oracleAdapters, chainId, blockNumber) */\n swap1\n pop\n /* \"Hashi.sol\":4350:4359 uint256 i */\n 0x00\n /* \"Hashi.sol\":4345:4448 for (uint256 i = 0; i < blockHeaders.length; i++) {... */\n tag_30:\n /* \"Hashi.sol\":4369:4381 blockHeaders */\n dup2\n /* \"Hashi.sol\":4369:4388 blockHeaders.length */\n mload\n /* \"Hashi.sol\":4365:4366 i */\n dup2\n /* \"Hashi.sol\":4365:4388 i < blockHeaders.length */\n lt\n /* \"Hashi.sol\":4345:4448 for (uint256 i = 0; i < blockHeaders.length; i++) {... */\n iszero\n tag_31\n jumpi\n /* \"Hashi.sol\":4436:4437 1 */\n 0x01\n /* \"Hashi.sol\":4409:4415 counts */\n 0x00\n /* \"Hashi.sol\":4409:4432 counts[blockHeaders[i]] */\n dup1\n /* \"Hashi.sol\":4416:4428 blockHeaders */\n dup5\n /* \"Hashi.sol\":4429:4430 i */\n dup5\n /* \"Hashi.sol\":4416:4431 blockHeaders[i] */\n dup2\n mload\n dup2\n lt\n tag_33\n jumpi\n tag_34\n tag_35\n jump\t// in\n tag_34:\n tag_33:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"Hashi.sol\":4409:4432 counts[blockHeaders[i]] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"Hashi.sol\":4409:4437 counts[blockHeaders[i]] += 1 */\n dup3\n dup3\n sload\n tag_36\n swap2\n swap1\n tag_37\n jump\t// in\n tag_36:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"Hashi.sol\":4390:4393 i++ */\n dup1\n dup1\n tag_38\n swap1\n tag_39\n jump\t// in\n tag_38:\n swap2\n pop\n pop\n /* \"Hashi.sol\":4345:4448 for (uint256 i = 0; i < blockHeaders.length; i++) {... */\n jump(tag_30)\n tag_31:\n pop\n /* \"Hashi.sol\":4457:4477 uint256 highestCount */\n 0x00\n /* \"Hashi.sol\":4492:4501 uint256 i */\n dup1\n /* \"Hashi.sol\":4504:4505 0 */\n 0x00\n /* \"Hashi.sol\":4492:4505 uint256 i = 0 */\n swap1\n pop\n /* \"Hashi.sol\":4487:4810 for (uint256 i = 0; i < blockHeaders.length; i++) {... */\n tag_40:\n /* \"Hashi.sol\":4511:4523 blockHeaders */\n dup3\n /* \"Hashi.sol\":4511:4530 blockHeaders.length */\n mload\n /* \"Hashi.sol\":4507:4508 i */\n dup2\n /* \"Hashi.sol\":4507:4530 i < blockHeaders.length */\n lt\n /* \"Hashi.sol\":4487:4810 for (uint256 i = 0; i < blockHeaders.length; i++) {... */\n iszero\n tag_41\n jumpi\n /* \"Hashi.sol\":4551:4572 bytes32 currentHeader */\n 0x00\n /* \"Hashi.sol\":4575:4587 blockHeaders */\n dup4\n /* \"Hashi.sol\":4588:4589 i */\n dup3\n /* \"Hashi.sol\":4575:4590 blockHeaders[i] */\n dup2\n mload\n dup2\n lt\n tag_43\n jumpi\n tag_44\n tag_35\n jump\t// in\n tag_44:\n tag_43:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"Hashi.sol\":4551:4590 bytes32 currentHeader = blockHeaders[i] */\n swap1\n pop\n /* \"Hashi.sol\":4604:4624 uint256 currentCount */\n 0x00\n /* \"Hashi.sol\":4627:4633 counts */\n dup1\n /* \"Hashi.sol\":4627:4648 counts[currentHeader] */\n 0x00\n /* \"Hashi.sol\":4634:4647 currentHeader */\n dup4\n /* \"Hashi.sol\":4627:4648 counts[currentHeader] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"Hashi.sol\":4604:4648 uint256 currentCount = counts[currentHeader] */\n swap1\n pop\n /* \"Hashi.sol\":4681:4693 highestCount */\n dup4\n /* \"Hashi.sol\":4666:4678 currentCount */\n dup2\n /* \"Hashi.sol\":4666:4693 currentCount > highestCount */\n gt\n /* \"Hashi.sol\":4662:4800 if (currentCount > highestCount) {... */\n iszero\n tag_45\n jumpi\n /* \"Hashi.sol\":4728:4740 currentCount */\n dup1\n /* \"Hashi.sol\":4713:4740 highestCount = currentCount */\n swap4\n pop\n /* \"Hashi.sol\":4772:4785 currentHeader */\n dup2\n /* \"Hashi.sol\":4758:4785 blockHeader = currentHeader */\n swap6\n pop\n /* \"Hashi.sol\":4662:4800 if (currentCount > highestCount) {... */\n tag_45:\n /* \"Hashi.sol\":4537:4810 {... */\n pop\n pop\n /* \"Hashi.sol\":4532:4535 i++ */\n dup1\n dup1\n tag_46\n swap1\n tag_39\n jump\t// in\n tag_46:\n swap2\n pop\n pop\n /* \"Hashi.sol\":4487:4810 for (uint256 i = 0; i < blockHeaders.length; i++) {... */\n jump(tag_40)\n tag_41:\n pop\n /* \"Hashi.sol\":4824:4833 uint256 i */\n 0x00\n /* \"Hashi.sol\":4819:4923 for (uint256 i = 0; i < blockHeaders.length; i++) {... */\n tag_47:\n /* \"Hashi.sol\":4843:4855 blockHeaders */\n dup3\n /* \"Hashi.sol\":4843:4862 blockHeaders.length */\n mload\n /* \"Hashi.sol\":4839:4840 i */\n dup2\n /* \"Hashi.sol\":4839:4862 i < blockHeaders.length */\n lt\n /* \"Hashi.sol\":4819:4923 for (uint256 i = 0; i < blockHeaders.length; i++) {... */\n iszero\n tag_48\n jumpi\n /* \"Hashi.sol\":4890:4896 counts */\n 0x00\n /* \"Hashi.sol\":4890:4912 counts[blockHeader[i]] */\n dup1\n /* \"Hashi.sol\":4897:4908 blockHeader */\n dup6\n /* \"Hashi.sol\":4909:4910 i */\n dup4\n /* \"Hashi.sol\":4897:4911 blockHeader[i] */\n 0x20\n dup2\n lt\n tag_50\n jumpi\n tag_51\n tag_35\n jump\t// in\n tag_51:\n tag_50:\n byte\n 0xf8\n shl\n /* \"Hashi.sol\":4890:4912 counts[blockHeader[i]] */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"Hashi.sol\":4883:4912 delete counts[blockHeader[i]] */\n 0x00\n swap1\n sstore\n /* \"Hashi.sol\":4864:4867 i++ */\n dup1\n dup1\n tag_52\n swap1\n tag_39\n jump\t// in\n tag_52:\n swap2\n pop\n pop\n /* \"Hashi.sol\":4819:4923 for (uint256 i = 0; i < blockHeaders.length; i++) {... */\n jump(tag_47)\n tag_48:\n pop\n /* \"Hashi.sol\":4951:4960 threshold */\n dup4\n /* \"Hashi.sol\":4936:4948 highestCount */\n dup2\n /* \"Hashi.sol\":4936:4960 highestCount < threshold */\n lt\n /* \"Hashi.sol\":4932:5026 if (highestCount < threshold) revert ThresholdNotMet(address(this), highestCount, blockHeader) */\n iszero\n tag_53\n jumpi\n /* \"Hashi.sol\":4993:4997 this */\n address\n /* \"Hashi.sol\":5000:5012 highestCount */\n dup2\n /* \"Hashi.sol\":5014:5025 blockHeader */\n dup5\n /* \"Hashi.sol\":4969:5026 ThresholdNotMet(address(this), highestCount, blockHeader) */\n mload(0x40)\n 0x22bcb23b00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_54\n swap4\n swap3\n swap2\n swap1\n tag_55\n jump\t// in\n tag_54:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"Hashi.sol\":4932:5026 if (highestCount < threshold) revert ThresholdNotMet(address(this), highestCount, blockHeader) */\n tag_53:\n /* \"Hashi.sol\":4234:5033 {... */\n pop\n pop\n /* \"Hashi.sol\":4039:5033 function getHeaderFromThreshold(... */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"Hashi.sol\":2454:3344 function getAgreedOnHeader(... */\n tag_16:\n /* \"Hashi.sol\":2601:2620 bytes32 blockHeader */\n 0x00\n /* \"Hashi.sol\":2632:2661 bytes32[] memory blockHeaders */\n dup1\n /* \"Hashi.sol\":2664:2723 getHeadersFromOracles(oracleAdapters, chainId, blockNumber) */\n tag_57\n /* \"Hashi.sol\":2686:2700 oracleAdapters */\n dup6\n /* \"Hashi.sol\":2702:2709 chainId */\n dup6\n /* \"Hashi.sol\":2711:2722 blockNumber */\n dup6\n /* \"Hashi.sol\":2664:2685 getHeadersFromOracles */\n tag_25\n /* \"Hashi.sol\":2664:2723 getHeadersFromOracles(oracleAdapters, chainId, blockNumber) */\n jump\t// in\n tag_57:\n /* \"Hashi.sol\":2632:2723 bytes32[] memory blockHeaders = getHeadersFromOracles(oracleAdapters, chainId, blockNumber) */\n swap1\n pop\n /* \"Hashi.sol\":2733:2755 bytes32 previousHeader */\n 0x00\n /* \"Hashi.sol\":2758:2770 blockHeaders */\n dup2\n /* \"Hashi.sol\":2771:2772 0 */\n 0x00\n /* \"Hashi.sol\":2758:2773 blockHeaders[0] */\n dup2\n mload\n dup2\n lt\n tag_58\n jumpi\n tag_59\n tag_35\n jump\t// in\n tag_59:\n tag_58:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"Hashi.sol\":2733:2773 bytes32 previousHeader = blockHeaders[0] */\n swap1\n pop\n /* \"Hashi.sol\":2813:2814 0 */\n 0x00\n /* \"Hashi.sol\":2805:2815 bytes32(0) */\n dup1\n shl\n /* \"Hashi.sol\":2787:2801 previousHeader */\n dup2\n /* \"Hashi.sol\":2787:2815 previousHeader == bytes32(0) */\n sub\n /* \"Hashi.sol\":2783:2876 if (previousHeader == bytes32(0)) revert OracleDidNotReport(address(this), oracleAdapters[0]) */\n tag_60\n jumpi\n /* \"Hashi.sol\":2851:2855 this */\n address\n /* \"Hashi.sol\":2858:2872 oracleAdapters */\n dup7\n /* \"Hashi.sol\":2873:2874 0 */\n 0x00\n /* \"Hashi.sol\":2858:2875 oracleAdapters[0] */\n dup2\n mload\n dup2\n lt\n tag_61\n jumpi\n tag_62\n tag_35\n jump\t// in\n tag_62:\n tag_61:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"Hashi.sol\":2824:2876 OracleDidNotReport(address(this), oracleAdapters[0]) */\n mload(0x40)\n 0x2a0c203900000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_63\n swap3\n swap2\n swap1\n tag_64\n jump\t// in\n tag_63:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"Hashi.sol\":2783:2876 if (previousHeader == bytes32(0)) revert OracleDidNotReport(address(this), oracleAdapters[0]) */\n tag_60:\n /* \"Hashi.sol\":2886:2907 bytes32 currentHeader */\n 0x00\n /* \"Hashi.sol\":2922:2931 uint256 i */\n dup1\n /* \"Hashi.sol\":2934:2935 1 */\n 0x01\n /* \"Hashi.sol\":2922:2935 uint256 i = 1 */\n swap1\n pop\n /* \"Hashi.sol\":2917:3301 for (uint256 i = 1; i < blockHeaders.length; i++) {... */\n tag_65:\n /* \"Hashi.sol\":2941:2953 blockHeaders */\n dup4\n /* \"Hashi.sol\":2941:2960 blockHeaders.length */\n mload\n /* \"Hashi.sol\":2937:2938 i */\n dup2\n /* \"Hashi.sol\":2937:2960 i < blockHeaders.length */\n lt\n /* \"Hashi.sol\":2917:3301 for (uint256 i = 1; i < blockHeaders.length; i++) {... */\n iszero\n tag_66\n jumpi\n /* \"Hashi.sol\":2997:3009 blockHeaders */\n dup4\n /* \"Hashi.sol\":3010:3011 i */\n dup2\n /* \"Hashi.sol\":2997:3012 blockHeaders[i] */\n dup2\n mload\n dup2\n lt\n tag_68\n jumpi\n tag_69\n tag_35\n jump\t// in\n tag_69:\n tag_68:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"Hashi.sol\":2981:3012 currentHeader = blockHeaders[i] */\n swap2\n pop\n /* \"Hashi.sol\":3055:3056 0 */\n 0x00\n /* \"Hashi.sol\":3047:3057 bytes32(0) */\n dup1\n shl\n /* \"Hashi.sol\":3030:3043 currentHeader */\n dup3\n /* \"Hashi.sol\":3030:3057 currentHeader == bytes32(0) */\n sub\n /* \"Hashi.sol\":3026:3118 if (currentHeader == bytes32(0)) revert OracleDidNotReport(address(this), oracleAdapters[i]) */\n tag_70\n jumpi\n /* \"Hashi.sol\":3093:3097 this */\n address\n /* \"Hashi.sol\":3100:3114 oracleAdapters */\n dup9\n /* \"Hashi.sol\":3115:3116 i */\n dup3\n /* \"Hashi.sol\":3100:3117 oracleAdapters[i] */\n dup2\n mload\n dup2\n lt\n tag_71\n jumpi\n tag_72\n tag_35\n jump\t// in\n tag_72:\n tag_71:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"Hashi.sol\":3066:3118 OracleDidNotReport(address(this), oracleAdapters[i]) */\n mload(0x40)\n 0x2a0c203900000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_73\n swap3\n swap2\n swap1\n tag_64\n jump\t// in\n tag_73:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"Hashi.sol\":3026:3118 if (currentHeader == bytes32(0)) revert OracleDidNotReport(address(this), oracleAdapters[i]) */\n tag_70:\n /* \"Hashi.sol\":3153:3167 previousHeader */\n dup3\n /* \"Hashi.sol\":3136:3149 currentHeader */\n dup3\n /* \"Hashi.sol\":3136:3167 currentHeader != previousHeader */\n eq\n /* \"Hashi.sol\":3132:3246 if (currentHeader != previousHeader) revert OraclesDisagree(address(this), oracleAdapters[i-1], oracleAdapters[i]) */\n tag_74\n jumpi\n /* \"Hashi.sol\":3200:3204 this */\n address\n /* \"Hashi.sol\":3207:3221 oracleAdapters */\n dup9\n /* \"Hashi.sol\":3224:3225 1 */\n 0x01\n /* \"Hashi.sol\":3222:3223 i */\n dup4\n /* \"Hashi.sol\":3222:3225 i-1 */\n tag_75\n swap2\n swap1\n tag_76\n jump\t// in\n tag_75:\n /* \"Hashi.sol\":3207:3226 oracleAdapters[i-1] */\n dup2\n mload\n dup2\n lt\n tag_77\n jumpi\n tag_78\n tag_35\n jump\t// in\n tag_78:\n tag_77:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"Hashi.sol\":3228:3242 oracleAdapters */\n dup10\n /* \"Hashi.sol\":3243:3244 i */\n dup4\n /* \"Hashi.sol\":3228:3245 oracleAdapters[i] */\n dup2\n mload\n dup2\n lt\n tag_79\n jumpi\n tag_80\n tag_35\n jump\t// in\n tag_80:\n tag_79:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"Hashi.sol\":3176:3246 OraclesDisagree(address(this), oracleAdapters[i-1], oracleAdapters[i]) */\n mload(0x40)\n 0xdbed4b2700000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_81\n swap4\n swap3\n swap2\n swap1\n tag_82\n jump\t// in\n tag_81:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"Hashi.sol\":3132:3246 if (currentHeader != previousHeader) revert OraclesDisagree(address(this), oracleAdapters[i-1], oracleAdapters[i]) */\n tag_74:\n /* \"Hashi.sol\":3277:3290 currentHeader */\n dup2\n /* \"Hashi.sol\":3260:3290 previousHeader = currentHeader */\n swap3\n pop\n /* \"Hashi.sol\":2962:2965 i++ */\n dup1\n dup1\n tag_83\n swap1\n tag_39\n jump\t// in\n tag_83:\n swap2\n pop\n pop\n /* \"Hashi.sol\":2917:3301 for (uint256 i = 1; i < blockHeaders.length; i++) {... */\n jump(tag_65)\n tag_66:\n pop\n /* \"Hashi.sol\":3324:3337 currentHeader */\n dup1\n /* \"Hashi.sol\":3310:3337 blockHeader = currentHeader */\n swap4\n pop\n /* \"Hashi.sol\":2622:3344 {... */\n pop\n pop\n pop\n /* \"Hashi.sol\":2454:3344 function getAgreedOnHeader(... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"Hashi.sol\":773:1050 function getHeaderFromOracle(... */\n tag_21:\n /* \"Hashi.sol\":912:931 bytes32 blockHeader */\n 0x00\n /* \"Hashi.sol\":972:985 oracleAdapter */\n dup4\n /* \"Hashi.sol\":957:1006 IOracleAdapter(oracleAdapter).getHeaderFromOracle */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xb31825bf\n /* \"Hashi.sol\":1007:1020 oracleAdapter */\n dup6\n /* \"Hashi.sol\":1022:1029 chainId */\n dup6\n /* \"Hashi.sol\":1031:1042 blockNumber */\n dup6\n /* \"Hashi.sol\":957:1043 IOracleAdapter(oracleAdapter).getHeaderFromOracle(oracleAdapter, chainId, blockNumber) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_85\n swap4\n swap3\n swap2\n swap1\n tag_86\n jump\t// in\n tag_85:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_88\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_88:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_89\n swap2\n swap1\n tag_90\n jump\t// in\n tag_89:\n /* \"Hashi.sol\":943:1043 blockHeader = IOracleAdapter(oracleAdapter).getHeaderFromOracle(oracleAdapter, chainId, blockNumber) */\n swap1\n pop\n /* \"Hashi.sol\":773:1050 function getHeaderFromOracle(... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"Hashi.sol\":1624:1977 function getHeadersFromOracles(... */\n tag_25:\n /* \"Hashi.sol\":1775:1804 bytes32[] memory blockHeaders */\n 0x60\n /* \"Hashi.sol\":1821:1830 uint256 i */\n 0x00\n /* \"Hashi.sol\":1816:1971 for (uint256 i = 0; i < oracleAdapters.length; i++) {... */\n tag_92:\n /* \"Hashi.sol\":1840:1854 oracleAdapters */\n dup5\n /* \"Hashi.sol\":1840:1861 oracleAdapters.length */\n mload\n /* \"Hashi.sol\":1836:1837 i */\n dup2\n /* \"Hashi.sol\":1836:1861 i < oracleAdapters.length */\n lt\n /* \"Hashi.sol\":1816:1971 for (uint256 i = 0; i < oracleAdapters.length; i++) {... */\n iszero\n tag_93\n jumpi\n /* \"Hashi.sol\":1900:1960 getHeaderFromOracle(oracleAdapters[i], chainId, blockNumber) */\n tag_95\n /* \"Hashi.sol\":1920:1934 oracleAdapters */\n dup6\n /* \"Hashi.sol\":1935:1936 i */\n dup3\n /* \"Hashi.sol\":1920:1937 oracleAdapters[i] */\n dup2\n mload\n dup2\n lt\n tag_96\n jumpi\n tag_97\n tag_35\n jump\t// in\n tag_97:\n tag_96:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"Hashi.sol\":1939:1946 chainId */\n dup6\n /* \"Hashi.sol\":1948:1959 blockNumber */\n dup6\n /* \"Hashi.sol\":1900:1919 getHeaderFromOracle */\n tag_21\n /* \"Hashi.sol\":1900:1960 getHeaderFromOracle(oracleAdapters[i], chainId, blockNumber) */\n jump\t// in\n tag_95:\n /* \"Hashi.sol\":1882:1894 blockHeaders */\n dup3\n /* \"Hashi.sol\":1895:1896 i */\n dup3\n /* \"Hashi.sol\":1882:1897 blockHeaders[i] */\n dup2\n mload\n dup2\n lt\n tag_98\n jumpi\n tag_99\n tag_35\n jump\t// in\n tag_99:\n tag_98:\n 0x20\n mul\n 0x20\n add\n add\n /* \"Hashi.sol\":1882:1960 blockHeaders[i] = getHeaderFromOracle(oracleAdapters[i], chainId, blockNumber) */\n dup2\n dup2\n mstore\n pop\n pop\n /* \"Hashi.sol\":1863:1866 i++ */\n dup1\n dup1\n tag_100\n swap1\n tag_39\n jump\t// in\n tag_100:\n swap2\n pop\n pop\n /* \"Hashi.sol\":1816:1971 for (uint256 i = 0; i < oracleAdapters.length; i++) {... */\n jump(tag_92)\n tag_93:\n pop\n /* \"Hashi.sol\":1624:1977 function getHeadersFromOracles(... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7:82 */\n tag_101:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\n tag_102:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\n tag_103:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:451 */\n tag_104:\n /* \"#utility.yul\":443:444 */\n 0x00\n /* \"#utility.yul\":440:441 */\n dup1\n /* \"#utility.yul\":433:445 */\n revert\n /* \"#utility.yul\":457:559 */\n tag_105:\n /* \"#utility.yul\":498:504 */\n 0x00\n /* \"#utility.yul\":549:551 */\n 0x1f\n /* \"#utility.yul\":545:552 */\n not\n /* \"#utility.yul\":540:542 */\n 0x1f\n /* \"#utility.yul\":533:538 */\n dup4\n /* \"#utility.yul\":529:543 */\n add\n /* \"#utility.yul\":525:553 */\n and\n /* \"#utility.yul\":515:553 */\n swap1\n pop\n /* \"#utility.yul\":457:559 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":565:745 */\n tag_106:\n /* \"#utility.yul\":613:690 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":610:611 */\n 0x00\n /* \"#utility.yul\":603:691 */\n mstore\n /* \"#utility.yul\":710:714 */\n 0x41\n /* \"#utility.yul\":707:708 */\n 0x04\n /* \"#utility.yul\":700:715 */\n mstore\n /* \"#utility.yul\":734:738 */\n 0x24\n /* \"#utility.yul\":731:732 */\n 0x00\n /* \"#utility.yul\":724:739 */\n revert\n /* \"#utility.yul\":751:1032 */\n tag_107:\n /* \"#utility.yul\":834:861 */\n tag_142\n /* \"#utility.yul\":856:860 */\n dup3\n /* \"#utility.yul\":834:861 */\n tag_105\n jump\t// in\n tag_142:\n /* \"#utility.yul\":826:832 */\n dup2\n /* \"#utility.yul\":822:862 */\n add\n /* \"#utility.yul\":964:970 */\n dup2\n /* \"#utility.yul\":952:962 */\n dup2\n /* \"#utility.yul\":949:971 */\n lt\n /* \"#utility.yul\":928:946 */\n 0xffffffffffffffff\n /* \"#utility.yul\":916:926 */\n dup3\n /* \"#utility.yul\":913:947 */\n gt\n /* \"#utility.yul\":910:972 */\n or\n /* \"#utility.yul\":907:995 */\n iszero\n tag_143\n jumpi\n /* \"#utility.yul\":975:993 */\n tag_144\n tag_106\n jump\t// in\n tag_144:\n /* \"#utility.yul\":907:995 */\n tag_143:\n /* \"#utility.yul\":1015:1025 */\n dup1\n /* \"#utility.yul\":1011:1013 */\n 0x40\n /* \"#utility.yul\":1004:1026 */\n mstore\n /* \"#utility.yul\":794:1032 */\n pop\n /* \"#utility.yul\":751:1032 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1038:1167 */\n tag_108:\n /* \"#utility.yul\":1072:1078 */\n 0x00\n /* \"#utility.yul\":1099:1119 */\n tag_146\n tag_101\n jump\t// in\n tag_146:\n /* \"#utility.yul\":1089:1119 */\n swap1\n pop\n /* \"#utility.yul\":1128:1161 */\n tag_147\n /* \"#utility.yul\":1156:1160 */\n dup3\n /* \"#utility.yul\":1148:1154 */\n dup3\n /* \"#utility.yul\":1128:1161 */\n tag_107\n jump\t// in\n tag_147:\n /* \"#utility.yul\":1038:1167 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1173:1484 */\n tag_109:\n /* \"#utility.yul\":1250:1254 */\n 0x00\n /* \"#utility.yul\":1340:1358 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1332:1338 */\n dup3\n /* \"#utility.yul\":1329:1359 */\n gt\n /* \"#utility.yul\":1326:1382 */\n iszero\n tag_149\n jumpi\n /* \"#utility.yul\":1362:1380 */\n tag_150\n tag_106\n jump\t// in\n tag_150:\n /* \"#utility.yul\":1326:1382 */\n tag_149:\n /* \"#utility.yul\":1412:1416 */\n 0x20\n /* \"#utility.yul\":1404:1410 */\n dup3\n /* \"#utility.yul\":1400:1417 */\n mul\n /* \"#utility.yul\":1392:1417 */\n swap1\n pop\n /* \"#utility.yul\":1472:1476 */\n 0x20\n /* \"#utility.yul\":1466:1470 */\n dup2\n /* \"#utility.yul\":1462:1477 */\n add\n /* \"#utility.yul\":1454:1477 */\n swap1\n pop\n /* \"#utility.yul\":1173:1484 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1490:1607 */\n tag_110:\n /* \"#utility.yul\":1599:1600 */\n 0x00\n /* \"#utility.yul\":1596:1597 */\n dup1\n /* \"#utility.yul\":1589:1601 */\n revert\n /* \"#utility.yul\":1613:1739 */\n tag_111:\n /* \"#utility.yul\":1650:1657 */\n 0x00\n /* \"#utility.yul\":1690:1732 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1683:1688 */\n dup3\n /* \"#utility.yul\":1679:1733 */\n and\n /* \"#utility.yul\":1668:1733 */\n swap1\n pop\n /* \"#utility.yul\":1613:1739 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1745:1841 */\n tag_112:\n /* \"#utility.yul\":1782:1789 */\n 0x00\n /* \"#utility.yul\":1811:1835 */\n tag_154\n /* \"#utility.yul\":1829:1834 */\n dup3\n /* \"#utility.yul\":1811:1835 */\n tag_111\n jump\t// in\n tag_154:\n /* \"#utility.yul\":1800:1835 */\n swap1\n pop\n /* \"#utility.yul\":1745:1841 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1847:1969 */\n tag_113:\n /* \"#utility.yul\":1920:1944 */\n tag_156\n /* \"#utility.yul\":1938:1943 */\n dup2\n /* \"#utility.yul\":1920:1944 */\n tag_112\n jump\t// in\n tag_156:\n /* \"#utility.yul\":1913:1918 */\n dup2\n /* \"#utility.yul\":1910:1945 */\n eq\n /* \"#utility.yul\":1900:1963 */\n tag_157\n jumpi\n /* \"#utility.yul\":1959:1960 */\n 0x00\n /* \"#utility.yul\":1956:1957 */\n dup1\n /* \"#utility.yul\":1949:1961 */\n revert\n /* \"#utility.yul\":1900:1963 */\n tag_157:\n /* \"#utility.yul\":1847:1969 */\n pop\n jump\t// out\n /* \"#utility.yul\":1975:2114 */\n tag_114:\n /* \"#utility.yul\":2021:2026 */\n 0x00\n /* \"#utility.yul\":2059:2065 */\n dup2\n /* \"#utility.yul\":2046:2066 */\n calldataload\n /* \"#utility.yul\":2037:2066 */\n swap1\n pop\n /* \"#utility.yul\":2075:2108 */\n tag_159\n /* \"#utility.yul\":2102:2107 */\n dup2\n /* \"#utility.yul\":2075:2108 */\n tag_113\n jump\t// in\n tag_159:\n /* \"#utility.yul\":1975:2114 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2137:2847 */\n tag_115:\n /* \"#utility.yul\":2233:2238 */\n 0x00\n /* \"#utility.yul\":2258:2339 */\n tag_161\n /* \"#utility.yul\":2274:2338 */\n tag_162\n /* \"#utility.yul\":2331:2337 */\n dup5\n /* \"#utility.yul\":2274:2338 */\n tag_109\n jump\t// in\n tag_162:\n /* \"#utility.yul\":2258:2339 */\n tag_108\n jump\t// in\n tag_161:\n /* \"#utility.yul\":2249:2339 */\n swap1\n pop\n /* \"#utility.yul\":2359:2364 */\n dup1\n /* \"#utility.yul\":2388:2394 */\n dup4\n /* \"#utility.yul\":2381:2386 */\n dup3\n /* \"#utility.yul\":2374:2395 */\n mstore\n /* \"#utility.yul\":2422:2426 */\n 0x20\n /* \"#utility.yul\":2415:2420 */\n dup3\n /* \"#utility.yul\":2411:2427 */\n add\n /* \"#utility.yul\":2404:2427 */\n swap1\n pop\n /* \"#utility.yul\":2475:2479 */\n 0x20\n /* \"#utility.yul\":2467:2473 */\n dup5\n /* \"#utility.yul\":2463:2480 */\n mul\n /* \"#utility.yul\":2455:2461 */\n dup4\n /* \"#utility.yul\":2451:2481 */\n add\n /* \"#utility.yul\":2504:2507 */\n dup6\n /* \"#utility.yul\":2496:2502 */\n dup2\n /* \"#utility.yul\":2493:2508 */\n gt\n /* \"#utility.yul\":2490:2612 */\n iszero\n tag_163\n jumpi\n /* \"#utility.yul\":2523:2602 */\n tag_164\n tag_110\n jump\t// in\n tag_164:\n /* \"#utility.yul\":2490:2612 */\n tag_163:\n /* \"#utility.yul\":2638:2644 */\n dup4\n /* \"#utility.yul\":2621:2841 */\n tag_165:\n /* \"#utility.yul\":2655:2661 */\n dup2\n /* \"#utility.yul\":2650:2653 */\n dup2\n /* \"#utility.yul\":2647:2662 */\n lt\n /* \"#utility.yul\":2621:2841 */\n iszero\n tag_167\n jumpi\n /* \"#utility.yul\":2730:2733 */\n dup1\n /* \"#utility.yul\":2759:2796 */\n tag_168\n /* \"#utility.yul\":2792:2795 */\n dup9\n /* \"#utility.yul\":2780:2790 */\n dup3\n /* \"#utility.yul\":2759:2796 */\n tag_114\n jump\t// in\n tag_168:\n /* \"#utility.yul\":2754:2757 */\n dup5\n /* \"#utility.yul\":2747:2797 */\n mstore\n /* \"#utility.yul\":2826:2830 */\n 0x20\n /* \"#utility.yul\":2821:2824 */\n dup5\n /* \"#utility.yul\":2817:2831 */\n add\n /* \"#utility.yul\":2810:2831 */\n swap4\n pop\n /* \"#utility.yul\":2697:2841 */\n pop\n /* \"#utility.yul\":2681:2685 */\n 0x20\n /* \"#utility.yul\":2676:2679 */\n dup2\n /* \"#utility.yul\":2672:2686 */\n add\n /* \"#utility.yul\":2665:2686 */\n swap1\n pop\n /* \"#utility.yul\":2621:2841 */\n jump(tag_165)\n tag_167:\n /* \"#utility.yul\":2625:2646 */\n pop\n /* \"#utility.yul\":2239:2847 */\n pop\n pop\n /* \"#utility.yul\":2137:2847 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2870:3240 */\n tag_116:\n /* \"#utility.yul\":2941:2946 */\n 0x00\n /* \"#utility.yul\":2990:2993 */\n dup3\n /* \"#utility.yul\":2983:2987 */\n 0x1f\n /* \"#utility.yul\":2975:2981 */\n dup4\n /* \"#utility.yul\":2971:2988 */\n add\n /* \"#utility.yul\":2967:2994 */\n slt\n /* \"#utility.yul\":2957:3079 */\n tag_170\n jumpi\n /* \"#utility.yul\":2998:3077 */\n tag_171\n tag_104\n jump\t// in\n tag_171:\n /* \"#utility.yul\":2957:3079 */\n tag_170:\n /* \"#utility.yul\":3115:3121 */\n dup2\n /* \"#utility.yul\":3102:3122 */\n calldataload\n /* \"#utility.yul\":3140:3234 */\n tag_172\n /* \"#utility.yul\":3230:3233 */\n dup5\n /* \"#utility.yul\":3222:3228 */\n dup3\n /* \"#utility.yul\":3215:3219 */\n 0x20\n /* \"#utility.yul\":3207:3213 */\n dup7\n /* \"#utility.yul\":3203:3220 */\n add\n /* \"#utility.yul\":3140:3234 */\n tag_115\n jump\t// in\n tag_172:\n /* \"#utility.yul\":3131:3234 */\n swap2\n pop\n /* \"#utility.yul\":2947:3240 */\n pop\n /* \"#utility.yul\":2870:3240 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3246:3323 */\n tag_117:\n /* \"#utility.yul\":3283:3290 */\n 0x00\n /* \"#utility.yul\":3312:3317 */\n dup2\n /* \"#utility.yul\":3301:3317 */\n swap1\n pop\n /* \"#utility.yul\":3246:3323 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3329:3451 */\n tag_118:\n /* \"#utility.yul\":3402:3426 */\n tag_175\n /* \"#utility.yul\":3420:3425 */\n dup2\n /* \"#utility.yul\":3402:3426 */\n tag_117\n jump\t// in\n tag_175:\n /* \"#utility.yul\":3395:3400 */\n dup2\n /* \"#utility.yul\":3392:3427 */\n eq\n /* \"#utility.yul\":3382:3445 */\n tag_176\n jumpi\n /* \"#utility.yul\":3441:3442 */\n 0x00\n /* \"#utility.yul\":3438:3439 */\n dup1\n /* \"#utility.yul\":3431:3443 */\n revert\n /* \"#utility.yul\":3382:3445 */\n tag_176:\n /* \"#utility.yul\":3329:3451 */\n pop\n jump\t// out\n /* \"#utility.yul\":3457:3596 */\n tag_119:\n /* \"#utility.yul\":3503:3508 */\n 0x00\n /* \"#utility.yul\":3541:3547 */\n dup2\n /* \"#utility.yul\":3528:3548 */\n calldataload\n /* \"#utility.yul\":3519:3548 */\n swap1\n pop\n /* \"#utility.yul\":3557:3590 */\n tag_178\n /* \"#utility.yul\":3584:3589 */\n dup2\n /* \"#utility.yul\":3557:3590 */\n tag_118\n jump\t// in\n tag_178:\n /* \"#utility.yul\":3457:3596 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3602:4577 */\n tag_9:\n /* \"#utility.yul\":3713:3719 */\n 0x00\n /* \"#utility.yul\":3721:3727 */\n dup1\n /* \"#utility.yul\":3729:3735 */\n 0x00\n /* \"#utility.yul\":3737:3743 */\n dup1\n /* \"#utility.yul\":3786:3789 */\n 0x80\n /* \"#utility.yul\":3774:3783 */\n dup6\n /* \"#utility.yul\":3765:3772 */\n dup8\n /* \"#utility.yul\":3761:3784 */\n sub\n /* \"#utility.yul\":3757:3790 */\n slt\n /* \"#utility.yul\":3754:3874 */\n iszero\n tag_180\n jumpi\n /* \"#utility.yul\":3793:3872 */\n tag_181\n tag_102\n jump\t// in\n tag_181:\n /* \"#utility.yul\":3754:3874 */\n tag_180:\n /* \"#utility.yul\":3941:3942 */\n 0x00\n /* \"#utility.yul\":3930:3939 */\n dup6\n /* \"#utility.yul\":3926:3943 */\n add\n /* \"#utility.yul\":3913:3944 */\n calldataload\n /* \"#utility.yul\":3971:3989 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3963:3969 */\n dup2\n /* \"#utility.yul\":3960:3990 */\n gt\n /* \"#utility.yul\":3957:4074 */\n iszero\n tag_182\n jumpi\n /* \"#utility.yul\":3993:4072 */\n tag_183\n tag_103\n jump\t// in\n tag_183:\n /* \"#utility.yul\":3957:4074 */\n tag_182:\n /* \"#utility.yul\":4098:4176 */\n tag_184\n /* \"#utility.yul\":4168:4175 */\n dup8\n /* \"#utility.yul\":4159:4165 */\n dup3\n /* \"#utility.yul\":4148:4157 */\n dup9\n /* \"#utility.yul\":4144:4166 */\n add\n /* \"#utility.yul\":4098:4176 */\n tag_116\n jump\t// in\n tag_184:\n /* \"#utility.yul\":4088:4176 */\n swap5\n pop\n /* \"#utility.yul\":3884:4186 */\n pop\n /* \"#utility.yul\":4225:4227 */\n 0x20\n /* \"#utility.yul\":4251:4304 */\n tag_185\n /* \"#utility.yul\":4296:4303 */\n dup8\n /* \"#utility.yul\":4287:4293 */\n dup3\n /* \"#utility.yul\":4276:4285 */\n dup9\n /* \"#utility.yul\":4272:4294 */\n add\n /* \"#utility.yul\":4251:4304 */\n tag_119\n jump\t// in\n tag_185:\n /* \"#utility.yul\":4241:4304 */\n swap4\n pop\n /* \"#utility.yul\":4196:4314 */\n pop\n /* \"#utility.yul\":4353:4355 */\n 0x40\n /* \"#utility.yul\":4379:4432 */\n tag_186\n /* \"#utility.yul\":4424:4431 */\n dup8\n /* \"#utility.yul\":4415:4421 */\n dup3\n /* \"#utility.yul\":4404:4413 */\n dup9\n /* \"#utility.yul\":4400:4422 */\n add\n /* \"#utility.yul\":4379:4432 */\n tag_119\n jump\t// in\n tag_186:\n /* \"#utility.yul\":4369:4432 */\n swap3\n pop\n /* \"#utility.yul\":4324:4442 */\n pop\n /* \"#utility.yul\":4481:4483 */\n 0x60\n /* \"#utility.yul\":4507:4560 */\n tag_187\n /* \"#utility.yul\":4552:4559 */\n dup8\n /* \"#utility.yul\":4543:4549 */\n dup3\n /* \"#utility.yul\":4532:4541 */\n dup9\n /* \"#utility.yul\":4528:4550 */\n add\n /* \"#utility.yul\":4507:4560 */\n tag_119\n jump\t// in\n tag_187:\n /* \"#utility.yul\":4497:4560 */\n swap2\n pop\n /* \"#utility.yul\":4452:4570 */\n pop\n /* \"#utility.yul\":3602:4577 */\n swap3\n swap6\n swap2\n swap5\n pop\n swap3\n pop\n jump\t// out\n /* \"#utility.yul\":4583:4660 */\n tag_120:\n /* \"#utility.yul\":4620:4627 */\n 0x00\n /* \"#utility.yul\":4649:4654 */\n dup2\n /* \"#utility.yul\":4638:4654 */\n swap1\n pop\n /* \"#utility.yul\":4583:4660 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4666:4784 */\n tag_121:\n /* \"#utility.yul\":4753:4777 */\n tag_190\n /* \"#utility.yul\":4771:4776 */\n dup2\n /* \"#utility.yul\":4753:4777 */\n tag_120\n jump\t// in\n tag_190:\n /* \"#utility.yul\":4748:4751 */\n dup3\n /* \"#utility.yul\":4741:4778 */\n mstore\n /* \"#utility.yul\":4666:4784 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4790:5012 */\n tag_12:\n /* \"#utility.yul\":4883:4887 */\n 0x00\n /* \"#utility.yul\":4921:4923 */\n 0x20\n /* \"#utility.yul\":4910:4919 */\n dup3\n /* \"#utility.yul\":4906:4924 */\n add\n /* \"#utility.yul\":4898:4924 */\n swap1\n pop\n /* \"#utility.yul\":4934:5005 */\n tag_192\n /* \"#utility.yul\":5002:5003 */\n 0x00\n /* \"#utility.yul\":4991:5000 */\n dup4\n /* \"#utility.yul\":4987:5004 */\n add\n /* \"#utility.yul\":4978:4984 */\n dup5\n /* \"#utility.yul\":4934:5005 */\n tag_121\n jump\t// in\n tag_192:\n /* \"#utility.yul\":4790:5012 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5018:5847 */\n tag_15:\n /* \"#utility.yul\":5120:5126 */\n 0x00\n /* \"#utility.yul\":5128:5134 */\n dup1\n /* \"#utility.yul\":5136:5142 */\n 0x00\n /* \"#utility.yul\":5185:5187 */\n 0x60\n /* \"#utility.yul\":5173:5182 */\n dup5\n /* \"#utility.yul\":5164:5171 */\n dup7\n /* \"#utility.yul\":5160:5183 */\n sub\n /* \"#utility.yul\":5156:5188 */\n slt\n /* \"#utility.yul\":5153:5272 */\n iszero\n tag_194\n jumpi\n /* \"#utility.yul\":5191:5270 */\n tag_195\n tag_102\n jump\t// in\n tag_195:\n /* \"#utility.yul\":5153:5272 */\n tag_194:\n /* \"#utility.yul\":5339:5340 */\n 0x00\n /* \"#utility.yul\":5328:5337 */\n dup5\n /* \"#utility.yul\":5324:5341 */\n add\n /* \"#utility.yul\":5311:5342 */\n calldataload\n /* \"#utility.yul\":5369:5387 */\n 0xffffffffffffffff\n /* \"#utility.yul\":5361:5367 */\n dup2\n /* \"#utility.yul\":5358:5388 */\n gt\n /* \"#utility.yul\":5355:5472 */\n iszero\n tag_196\n jumpi\n /* \"#utility.yul\":5391:5470 */\n tag_197\n tag_103\n jump\t// in\n tag_197:\n /* \"#utility.yul\":5355:5472 */\n tag_196:\n /* \"#utility.yul\":5496:5574 */\n tag_198\n /* \"#utility.yul\":5566:5573 */\n dup7\n /* \"#utility.yul\":5557:5563 */\n dup3\n /* \"#utility.yul\":5546:5555 */\n dup8\n /* \"#utility.yul\":5542:5564 */\n add\n /* \"#utility.yul\":5496:5574 */\n tag_116\n jump\t// in\n tag_198:\n /* \"#utility.yul\":5486:5574 */\n swap4\n pop\n /* \"#utility.yul\":5282:5584 */\n pop\n /* \"#utility.yul\":5623:5625 */\n 0x20\n /* \"#utility.yul\":5649:5702 */\n tag_199\n /* \"#utility.yul\":5694:5701 */\n dup7\n /* \"#utility.yul\":5685:5691 */\n dup3\n /* \"#utility.yul\":5674:5683 */\n dup8\n /* \"#utility.yul\":5670:5692 */\n add\n /* \"#utility.yul\":5649:5702 */\n tag_119\n jump\t// in\n tag_199:\n /* \"#utility.yul\":5639:5702 */\n swap3\n pop\n /* \"#utility.yul\":5594:5712 */\n pop\n /* \"#utility.yul\":5751:5753 */\n 0x40\n /* \"#utility.yul\":5777:5830 */\n tag_200\n /* \"#utility.yul\":5822:5829 */\n dup7\n /* \"#utility.yul\":5813:5819 */\n dup3\n /* \"#utility.yul\":5802:5811 */\n dup8\n /* \"#utility.yul\":5798:5820 */\n add\n /* \"#utility.yul\":5777:5830 */\n tag_119\n jump\t// in\n tag_200:\n /* \"#utility.yul\":5767:5830 */\n swap2\n pop\n /* \"#utility.yul\":5722:5840 */\n pop\n /* \"#utility.yul\":5018:5847 */\n swap3\n pop\n swap3\n pop\n swap3\n jump\t// out\n /* \"#utility.yul\":5853:6472 */\n tag_20:\n /* \"#utility.yul\":5930:5936 */\n 0x00\n /* \"#utility.yul\":5938:5944 */\n dup1\n /* \"#utility.yul\":5946:5952 */\n 0x00\n /* \"#utility.yul\":5995:5997 */\n 0x60\n /* \"#utility.yul\":5983:5992 */\n dup5\n /* \"#utility.yul\":5974:5981 */\n dup7\n /* \"#utility.yul\":5970:5993 */\n sub\n /* \"#utility.yul\":5966:5998 */\n slt\n /* \"#utility.yul\":5963:6082 */\n iszero\n tag_202\n jumpi\n /* \"#utility.yul\":6001:6080 */\n tag_203\n tag_102\n jump\t// in\n tag_203:\n /* \"#utility.yul\":5963:6082 */\n tag_202:\n /* \"#utility.yul\":6121:6122 */\n 0x00\n /* \"#utility.yul\":6146:6199 */\n tag_204\n /* \"#utility.yul\":6191:6198 */\n dup7\n /* \"#utility.yul\":6182:6188 */\n dup3\n /* \"#utility.yul\":6171:6180 */\n dup8\n /* \"#utility.yul\":6167:6189 */\n add\n /* \"#utility.yul\":6146:6199 */\n tag_114\n jump\t// in\n tag_204:\n /* \"#utility.yul\":6136:6199 */\n swap4\n pop\n /* \"#utility.yul\":6092:6209 */\n pop\n /* \"#utility.yul\":6248:6250 */\n 0x20\n /* \"#utility.yul\":6274:6327 */\n tag_205\n /* \"#utility.yul\":6319:6326 */\n dup7\n /* \"#utility.yul\":6310:6316 */\n dup3\n /* \"#utility.yul\":6299:6308 */\n dup8\n /* \"#utility.yul\":6295:6317 */\n add\n /* \"#utility.yul\":6274:6327 */\n tag_119\n jump\t// in\n tag_205:\n /* \"#utility.yul\":6264:6327 */\n swap3\n pop\n /* \"#utility.yul\":6219:6337 */\n pop\n /* \"#utility.yul\":6376:6378 */\n 0x40\n /* \"#utility.yul\":6402:6455 */\n tag_206\n /* \"#utility.yul\":6447:6454 */\n dup7\n /* \"#utility.yul\":6438:6444 */\n dup3\n /* \"#utility.yul\":6427:6436 */\n dup8\n /* \"#utility.yul\":6423:6445 */\n add\n /* \"#utility.yul\":6402:6455 */\n tag_119\n jump\t// in\n tag_206:\n /* \"#utility.yul\":6392:6455 */\n swap2\n pop\n /* \"#utility.yul\":6347:6465 */\n pop\n /* \"#utility.yul\":5853:6472 */\n swap3\n pop\n swap3\n pop\n swap3\n jump\t// out\n /* \"#utility.yul\":6478:6592 */\n tag_122:\n /* \"#utility.yul\":6545:6551 */\n 0x00\n /* \"#utility.yul\":6579:6584 */\n dup2\n /* \"#utility.yul\":6573:6585 */\n mload\n /* \"#utility.yul\":6563:6585 */\n swap1\n pop\n /* \"#utility.yul\":6478:6592 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6598:6782 */\n tag_123:\n /* \"#utility.yul\":6697:6708 */\n 0x00\n /* \"#utility.yul\":6731:6737 */\n dup3\n /* \"#utility.yul\":6726:6729 */\n dup3\n /* \"#utility.yul\":6719:6738 */\n mstore\n /* \"#utility.yul\":6771:6775 */\n 0x20\n /* \"#utility.yul\":6766:6769 */\n dup3\n /* \"#utility.yul\":6762:6776 */\n add\n /* \"#utility.yul\":6747:6776 */\n swap1\n pop\n /* \"#utility.yul\":6598:6782 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6788:6920 */\n tag_124:\n /* \"#utility.yul\":6855:6859 */\n 0x00\n /* \"#utility.yul\":6878:6881 */\n dup2\n /* \"#utility.yul\":6870:6881 */\n swap1\n pop\n /* \"#utility.yul\":6908:6912 */\n 0x20\n /* \"#utility.yul\":6903:6906 */\n dup3\n /* \"#utility.yul\":6899:6913 */\n add\n /* \"#utility.yul\":6891:6913 */\n swap1\n pop\n /* \"#utility.yul\":6788:6920 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6926:7034 */\n tag_125:\n /* \"#utility.yul\":7003:7027 */\n tag_211\n /* \"#utility.yul\":7021:7026 */\n dup2\n /* \"#utility.yul\":7003:7027 */\n tag_120\n jump\t// in\n tag_211:\n /* \"#utility.yul\":6998:7001 */\n dup3\n /* \"#utility.yul\":6991:7028 */\n mstore\n /* \"#utility.yul\":6926:7034 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7040:7219 */\n tag_126:\n /* \"#utility.yul\":7109:7119 */\n 0x00\n /* \"#utility.yul\":7130:7176 */\n tag_213\n /* \"#utility.yul\":7172:7175 */\n dup4\n /* \"#utility.yul\":7164:7170 */\n dup4\n /* \"#utility.yul\":7130:7176 */\n tag_125\n jump\t// in\n tag_213:\n /* \"#utility.yul\":7208:7212 */\n 0x20\n /* \"#utility.yul\":7203:7206 */\n dup4\n /* \"#utility.yul\":7199:7213 */\n add\n /* \"#utility.yul\":7185:7213 */\n swap1\n pop\n /* \"#utility.yul\":7040:7219 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7225:7338 */\n tag_127:\n /* \"#utility.yul\":7295:7299 */\n 0x00\n /* \"#utility.yul\":7327:7331 */\n 0x20\n /* \"#utility.yul\":7322:7325 */\n dup3\n /* \"#utility.yul\":7318:7332 */\n add\n /* \"#utility.yul\":7310:7332 */\n swap1\n pop\n /* \"#utility.yul\":7225:7338 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7374:8106 */\n tag_128:\n /* \"#utility.yul\":7493:7496 */\n 0x00\n /* \"#utility.yul\":7522:7576 */\n tag_216\n /* \"#utility.yul\":7570:7575 */\n dup3\n /* \"#utility.yul\":7522:7576 */\n tag_122\n jump\t// in\n tag_216:\n /* \"#utility.yul\":7592:7678 */\n tag_217\n /* \"#utility.yul\":7671:7677 */\n dup2\n /* \"#utility.yul\":7666:7669 */\n dup6\n /* \"#utility.yul\":7592:7678 */\n tag_123\n jump\t// in\n tag_217:\n /* \"#utility.yul\":7585:7678 */\n swap4\n pop\n /* \"#utility.yul\":7702:7758 */\n tag_218\n /* \"#utility.yul\":7752:7757 */\n dup4\n /* \"#utility.yul\":7702:7758 */\n tag_124\n jump\t// in\n tag_218:\n /* \"#utility.yul\":7781:7788 */\n dup1\n /* \"#utility.yul\":7812:7813 */\n 0x00\n /* \"#utility.yul\":7797:8081 */\n tag_219:\n /* \"#utility.yul\":7822:7828 */\n dup4\n /* \"#utility.yul\":7819:7820 */\n dup2\n /* \"#utility.yul\":7816:7829 */\n lt\n /* \"#utility.yul\":7797:8081 */\n iszero\n tag_221\n jumpi\n /* \"#utility.yul\":7898:7904 */\n dup2\n /* \"#utility.yul\":7892:7905 */\n mload\n /* \"#utility.yul\":7925:7988 */\n tag_222\n /* \"#utility.yul\":7984:7987 */\n dup9\n /* \"#utility.yul\":7969:7982 */\n dup3\n /* \"#utility.yul\":7925:7988 */\n tag_126\n jump\t// in\n tag_222:\n /* \"#utility.yul\":7918:7988 */\n swap8\n pop\n /* \"#utility.yul\":8011:8071 */\n tag_223\n /* \"#utility.yul\":8064:8070 */\n dup4\n /* \"#utility.yul\":8011:8071 */\n tag_127\n jump\t// in\n tag_223:\n /* \"#utility.yul\":8001:8071 */\n swap3\n pop\n /* \"#utility.yul\":7857:8081 */\n pop\n /* \"#utility.yul\":7844:7845 */\n 0x01\n /* \"#utility.yul\":7841:7842 */\n dup2\n /* \"#utility.yul\":7837:7846 */\n add\n /* \"#utility.yul\":7832:7846 */\n swap1\n pop\n /* \"#utility.yul\":7797:8081 */\n jump(tag_219)\n tag_221:\n /* \"#utility.yul\":7801:7815 */\n pop\n /* \"#utility.yul\":8097:8100 */\n dup6\n /* \"#utility.yul\":8090:8100 */\n swap4\n pop\n /* \"#utility.yul\":7498:8106 */\n pop\n pop\n pop\n /* \"#utility.yul\":7374:8106 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8112:8485 */\n tag_27:\n /* \"#utility.yul\":8255:8259 */\n 0x00\n /* \"#utility.yul\":8293:8295 */\n 0x20\n /* \"#utility.yul\":8282:8291 */\n dup3\n /* \"#utility.yul\":8278:8296 */\n add\n /* \"#utility.yul\":8270:8296 */\n swap1\n pop\n /* \"#utility.yul\":8342:8351 */\n dup2\n /* \"#utility.yul\":8336:8340 */\n dup2\n /* \"#utility.yul\":8332:8352 */\n sub\n /* \"#utility.yul\":8328:8329 */\n 0x00\n /* \"#utility.yul\":8317:8326 */\n dup4\n /* \"#utility.yul\":8313:8330 */\n add\n /* \"#utility.yul\":8306:8353 */\n mstore\n /* \"#utility.yul\":8370:8478 */\n tag_225\n /* \"#utility.yul\":8473:8477 */\n dup2\n /* \"#utility.yul\":8464:8470 */\n dup5\n /* \"#utility.yul\":8370:8478 */\n tag_128\n jump\t// in\n tag_225:\n /* \"#utility.yul\":8362:8478 */\n swap1\n pop\n /* \"#utility.yul\":8112:8485 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8491:8671 */\n tag_35:\n /* \"#utility.yul\":8539:8616 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":8536:8537 */\n 0x00\n /* \"#utility.yul\":8529:8617 */\n mstore\n /* \"#utility.yul\":8636:8640 */\n 0x32\n /* \"#utility.yul\":8633:8634 */\n 0x04\n /* \"#utility.yul\":8626:8641 */\n mstore\n /* \"#utility.yul\":8660:8664 */\n 0x24\n /* \"#utility.yul\":8657:8658 */\n 0x00\n /* \"#utility.yul\":8650:8665 */\n revert\n /* \"#utility.yul\":8677:8857 */\n tag_129:\n /* \"#utility.yul\":8725:8802 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":8722:8723 */\n 0x00\n /* \"#utility.yul\":8715:8803 */\n mstore\n /* \"#utility.yul\":8822:8826 */\n 0x11\n /* \"#utility.yul\":8819:8820 */\n 0x04\n /* \"#utility.yul\":8812:8827 */\n mstore\n /* \"#utility.yul\":8846:8850 */\n 0x24\n /* \"#utility.yul\":8843:8844 */\n 0x00\n /* \"#utility.yul\":8836:8851 */\n revert\n /* \"#utility.yul\":8863:9054 */\n tag_37:\n /* \"#utility.yul\":8903:8906 */\n 0x00\n /* \"#utility.yul\":8922:8942 */\n tag_229\n /* \"#utility.yul\":8940:8941 */\n dup3\n /* \"#utility.yul\":8922:8942 */\n tag_117\n jump\t// in\n tag_229:\n /* \"#utility.yul\":8917:8942 */\n swap2\n pop\n /* \"#utility.yul\":8956:8976 */\n tag_230\n /* \"#utility.yul\":8974:8975 */\n dup4\n /* \"#utility.yul\":8956:8976 */\n tag_117\n jump\t// in\n tag_230:\n /* \"#utility.yul\":8951:8976 */\n swap3\n pop\n /* \"#utility.yul\":8999:9000 */\n dup3\n /* \"#utility.yul\":8996:8997 */\n dup3\n /* \"#utility.yul\":8992:9001 */\n add\n /* \"#utility.yul\":8985:9001 */\n swap1\n pop\n /* \"#utility.yul\":9020:9023 */\n dup1\n /* \"#utility.yul\":9017:9018 */\n dup3\n /* \"#utility.yul\":9014:9024 */\n gt\n /* \"#utility.yul\":9011:9047 */\n iszero\n tag_231\n jumpi\n /* \"#utility.yul\":9027:9045 */\n tag_232\n tag_129\n jump\t// in\n tag_232:\n /* \"#utility.yul\":9011:9047 */\n tag_231:\n /* \"#utility.yul\":8863:9054 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9060:9293 */\n tag_39:\n /* \"#utility.yul\":9099:9102 */\n 0x00\n /* \"#utility.yul\":9122:9146 */\n tag_234\n /* \"#utility.yul\":9140:9145 */\n dup3\n /* \"#utility.yul\":9122:9146 */\n tag_117\n jump\t// in\n tag_234:\n /* \"#utility.yul\":9113:9146 */\n swap2\n pop\n /* \"#utility.yul\":9168:9234 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":9161:9166 */\n dup3\n /* \"#utility.yul\":9158:9235 */\n sub\n /* \"#utility.yul\":9155:9258 */\n tag_235\n jumpi\n /* \"#utility.yul\":9238:9256 */\n tag_236\n tag_129\n jump\t// in\n tag_236:\n /* \"#utility.yul\":9155:9258 */\n tag_235:\n /* \"#utility.yul\":9285:9286 */\n 0x01\n /* \"#utility.yul\":9278:9283 */\n dup3\n /* \"#utility.yul\":9274:9287 */\n add\n /* \"#utility.yul\":9267:9287 */\n swap1\n pop\n /* \"#utility.yul\":9060:9293 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9299:9417 */\n tag_130:\n /* \"#utility.yul\":9386:9410 */\n tag_238\n /* \"#utility.yul\":9404:9409 */\n dup2\n /* \"#utility.yul\":9386:9410 */\n tag_112\n jump\t// in\n tag_238:\n /* \"#utility.yul\":9381:9384 */\n dup3\n /* \"#utility.yul\":9374:9411 */\n mstore\n /* \"#utility.yul\":9299:9417 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9423:9541 */\n tag_131:\n /* \"#utility.yul\":9510:9534 */\n tag_240\n /* \"#utility.yul\":9528:9533 */\n dup2\n /* \"#utility.yul\":9510:9534 */\n tag_117\n jump\t// in\n tag_240:\n /* \"#utility.yul\":9505:9508 */\n dup3\n /* \"#utility.yul\":9498:9535 */\n mstore\n /* \"#utility.yul\":9423:9541 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9547:9989 */\n tag_55:\n /* \"#utility.yul\":9696:9700 */\n 0x00\n /* \"#utility.yul\":9734:9736 */\n 0x60\n /* \"#utility.yul\":9723:9732 */\n dup3\n /* \"#utility.yul\":9719:9737 */\n add\n /* \"#utility.yul\":9711:9737 */\n swap1\n pop\n /* \"#utility.yul\":9747:9818 */\n tag_242\n /* \"#utility.yul\":9815:9816 */\n 0x00\n /* \"#utility.yul\":9804:9813 */\n dup4\n /* \"#utility.yul\":9800:9817 */\n add\n /* \"#utility.yul\":9791:9797 */\n dup7\n /* \"#utility.yul\":9747:9818 */\n tag_130\n jump\t// in\n tag_242:\n /* \"#utility.yul\":9828:9900 */\n tag_243\n /* \"#utility.yul\":9896:9898 */\n 0x20\n /* \"#utility.yul\":9885:9894 */\n dup4\n /* \"#utility.yul\":9881:9899 */\n add\n /* \"#utility.yul\":9872:9878 */\n dup6\n /* \"#utility.yul\":9828:9900 */\n tag_131\n jump\t// in\n tag_243:\n /* \"#utility.yul\":9910:9982 */\n tag_244\n /* \"#utility.yul\":9978:9980 */\n 0x40\n /* \"#utility.yul\":9967:9976 */\n dup4\n /* \"#utility.yul\":9963:9981 */\n add\n /* \"#utility.yul\":9954:9960 */\n dup5\n /* \"#utility.yul\":9910:9982 */\n tag_121\n jump\t// in\n tag_244:\n /* \"#utility.yul\":9547:9989 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9995:10327 */\n tag_64:\n /* \"#utility.yul\":10116:10120 */\n 0x00\n /* \"#utility.yul\":10154:10156 */\n 0x40\n /* \"#utility.yul\":10143:10152 */\n dup3\n /* \"#utility.yul\":10139:10157 */\n add\n /* \"#utility.yul\":10131:10157 */\n swap1\n pop\n /* \"#utility.yul\":10167:10238 */\n tag_246\n /* \"#utility.yul\":10235:10236 */\n 0x00\n /* \"#utility.yul\":10224:10233 */\n dup4\n /* \"#utility.yul\":10220:10237 */\n add\n /* \"#utility.yul\":10211:10217 */\n dup6\n /* \"#utility.yul\":10167:10238 */\n tag_130\n jump\t// in\n tag_246:\n /* \"#utility.yul\":10248:10320 */\n tag_247\n /* \"#utility.yul\":10316:10318 */\n 0x20\n /* \"#utility.yul\":10305:10314 */\n dup4\n /* \"#utility.yul\":10301:10319 */\n add\n /* \"#utility.yul\":10292:10298 */\n dup5\n /* \"#utility.yul\":10248:10320 */\n tag_130\n jump\t// in\n tag_247:\n /* \"#utility.yul\":9995:10327 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10333:10527 */\n tag_76:\n /* \"#utility.yul\":10373:10377 */\n 0x00\n /* \"#utility.yul\":10393:10413 */\n tag_249\n /* \"#utility.yul\":10411:10412 */\n dup3\n /* \"#utility.yul\":10393:10413 */\n tag_117\n jump\t// in\n tag_249:\n /* \"#utility.yul\":10388:10413 */\n swap2\n pop\n /* \"#utility.yul\":10427:10447 */\n tag_250\n /* \"#utility.yul\":10445:10446 */\n dup4\n /* \"#utility.yul\":10427:10447 */\n tag_117\n jump\t// in\n tag_250:\n /* \"#utility.yul\":10422:10447 */\n swap3\n pop\n /* \"#utility.yul\":10471:10472 */\n dup3\n /* \"#utility.yul\":10468:10469 */\n dup3\n /* \"#utility.yul\":10464:10473 */\n sub\n /* \"#utility.yul\":10456:10473 */\n swap1\n pop\n /* \"#utility.yul\":10495:10496 */\n dup2\n /* \"#utility.yul\":10489:10493 */\n dup2\n /* \"#utility.yul\":10486:10497 */\n gt\n /* \"#utility.yul\":10483:10520 */\n iszero\n tag_251\n jumpi\n /* \"#utility.yul\":10500:10518 */\n tag_252\n tag_129\n jump\t// in\n tag_252:\n /* \"#utility.yul\":10483:10520 */\n tag_251:\n /* \"#utility.yul\":10333:10527 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10533:10975 */\n tag_82:\n /* \"#utility.yul\":10682:10686 */\n 0x00\n /* \"#utility.yul\":10720:10722 */\n 0x60\n /* \"#utility.yul\":10709:10718 */\n dup3\n /* \"#utility.yul\":10705:10723 */\n add\n /* \"#utility.yul\":10697:10723 */\n swap1\n pop\n /* \"#utility.yul\":10733:10804 */\n tag_254\n /* \"#utility.yul\":10801:10802 */\n 0x00\n /* \"#utility.yul\":10790:10799 */\n dup4\n /* \"#utility.yul\":10786:10803 */\n add\n /* \"#utility.yul\":10777:10783 */\n dup7\n /* \"#utility.yul\":10733:10804 */\n tag_130\n jump\t// in\n tag_254:\n /* \"#utility.yul\":10814:10886 */\n tag_255\n /* \"#utility.yul\":10882:10884 */\n 0x20\n /* \"#utility.yul\":10871:10880 */\n dup4\n /* \"#utility.yul\":10867:10885 */\n add\n /* \"#utility.yul\":10858:10864 */\n dup6\n /* \"#utility.yul\":10814:10886 */\n tag_130\n jump\t// in\n tag_255:\n /* \"#utility.yul\":10896:10968 */\n tag_256\n /* \"#utility.yul\":10964:10966 */\n 0x40\n /* \"#utility.yul\":10953:10962 */\n dup4\n /* \"#utility.yul\":10949:10967 */\n add\n /* \"#utility.yul\":10940:10946 */\n dup5\n /* \"#utility.yul\":10896:10968 */\n tag_130\n jump\t// in\n tag_256:\n /* \"#utility.yul\":10533:10975 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10981:11423 */\n tag_86:\n /* \"#utility.yul\":11130:11134 */\n 0x00\n /* \"#utility.yul\":11168:11170 */\n 0x60\n /* \"#utility.yul\":11157:11166 */\n dup3\n /* \"#utility.yul\":11153:11171 */\n add\n /* \"#utility.yul\":11145:11171 */\n swap1\n pop\n /* \"#utility.yul\":11181:11252 */\n tag_258\n /* \"#utility.yul\":11249:11250 */\n 0x00\n /* \"#utility.yul\":11238:11247 */\n dup4\n /* \"#utility.yul\":11234:11251 */\n add\n /* \"#utility.yul\":11225:11231 */\n dup7\n /* \"#utility.yul\":11181:11252 */\n tag_130\n jump\t// in\n tag_258:\n /* \"#utility.yul\":11262:11334 */\n tag_259\n /* \"#utility.yul\":11330:11332 */\n 0x20\n /* \"#utility.yul\":11319:11328 */\n dup4\n /* \"#utility.yul\":11315:11333 */\n add\n /* \"#utility.yul\":11306:11312 */\n dup6\n /* \"#utility.yul\":11262:11334 */\n tag_131\n jump\t// in\n tag_259:\n /* \"#utility.yul\":11344:11416 */\n tag_260\n /* \"#utility.yul\":11412:11414 */\n 0x40\n /* \"#utility.yul\":11401:11410 */\n dup4\n /* \"#utility.yul\":11397:11415 */\n add\n /* \"#utility.yul\":11388:11394 */\n dup5\n /* \"#utility.yul\":11344:11416 */\n tag_131\n jump\t// in\n tag_260:\n /* \"#utility.yul\":10981:11423 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11429:11551 */\n tag_132:\n /* \"#utility.yul\":11502:11526 */\n tag_262\n /* \"#utility.yul\":11520:11525 */\n dup2\n /* \"#utility.yul\":11502:11526 */\n tag_120\n jump\t// in\n tag_262:\n /* \"#utility.yul\":11495:11500 */\n dup2\n /* \"#utility.yul\":11492:11527 */\n eq\n /* \"#utility.yul\":11482:11545 */\n tag_263\n jumpi\n /* \"#utility.yul\":11541:11542 */\n 0x00\n /* \"#utility.yul\":11538:11539 */\n dup1\n /* \"#utility.yul\":11531:11543 */\n revert\n /* \"#utility.yul\":11482:11545 */\n tag_263:\n /* \"#utility.yul\":11429:11551 */\n pop\n jump\t// out\n /* \"#utility.yul\":11557:11700 */\n tag_133:\n /* \"#utility.yul\":11614:11619 */\n 0x00\n /* \"#utility.yul\":11645:11651 */\n dup2\n /* \"#utility.yul\":11639:11652 */\n mload\n /* \"#utility.yul\":11630:11652 */\n swap1\n pop\n /* \"#utility.yul\":11661:11694 */\n tag_265\n /* \"#utility.yul\":11688:11693 */\n dup2\n /* \"#utility.yul\":11661:11694 */\n tag_132\n jump\t// in\n tag_265:\n /* \"#utility.yul\":11557:11700 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11706:12057 */\n tag_90:\n /* \"#utility.yul\":11776:11782 */\n 0x00\n /* \"#utility.yul\":11825:11827 */\n 0x20\n /* \"#utility.yul\":11813:11822 */\n dup3\n /* \"#utility.yul\":11804:11811 */\n dup5\n /* \"#utility.yul\":11800:11823 */\n sub\n /* \"#utility.yul\":11796:11828 */\n slt\n /* \"#utility.yul\":11793:11912 */\n iszero\n tag_267\n jumpi\n /* \"#utility.yul\":11831:11910 */\n tag_268\n tag_102\n jump\t// in\n tag_268:\n /* \"#utility.yul\":11793:11912 */\n tag_267:\n /* \"#utility.yul\":11951:11952 */\n 0x00\n /* \"#utility.yul\":11976:12040 */\n tag_269\n /* \"#utility.yul\":12032:12039 */\n dup5\n /* \"#utility.yul\":12023:12029 */\n dup3\n /* \"#utility.yul\":12012:12021 */\n dup6\n /* \"#utility.yul\":12008:12030 */\n add\n /* \"#utility.yul\":11976:12040 */\n tag_133\n jump\t// in\n tag_269:\n /* \"#utility.yul\":11966:12040 */\n swap2\n pop\n /* \"#utility.yul\":11922:12050 */\n pop\n /* \"#utility.yul\":11706:12057 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220adf3938367e12aaf1153aa4152fcc50f0eb69564932dd70e1e74b27406c520bb64736f6c63430008110033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610c5c806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80637ef79f8c1461005157806384dd0d1214610081578063b31825bf146100b1578063d56154ab146100e1575b600080fd5b61006b6004803603810190610066919061077a565b610111565b6040516100789190610816565b60405180910390f35b61009b60048036038101906100969190610831565b6102b2565b6040516100a89190610816565b60405180910390f35b6100cb60048036038101906100c691906108a0565b610483565b6040516100d89190610816565b60405180910390f35b6100fb60048036038101906100f69190610831565b61050c565b60405161010891906109b1565b60405180910390f35b60008061011f86868661050c565b905060005b8151811015610184576001600080848481518110610145576101446109d3565b5b60200260200101518152602001908152602001600020600082825461016a9190610a31565b92505081905550808061017c90610a65565b915050610124565b50600080600090505b82518110156101f05760008382815181106101ab576101aa6109d3565b5b602002602001015190506000806000838152602001908152602001600020549050838111156101db578093508195505b505080806101e890610a65565b91505061018d565b5060005b825181101561025e57600080858360208110610213576102126109d3565b5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009055808061025690610a65565b9150506101f4565b50838110156102a8573081846040517f22bcb23b00000000000000000000000000000000000000000000000000000000815260040161029f93929190610acb565b60405180910390fd5b5050949350505050565b6000806102c085858561050c565b90506000816000815181106102d8576102d76109d3565b5b602002602001015190506000801b8103610346573086600081518110610301576103006109d3565b5b60200260200101516040517f2a0c203900000000000000000000000000000000000000000000000000000000815260040161033d929190610b02565b60405180910390fd5b600080600190505b83518110156104755783818151811061036a576103696109d3565b5b602002602001015191506000801b82036103d75730888281518110610392576103916109d3565b5b60200260200101516040517f2a0c20390000000000000000000000000000000000000000000000000000000081526004016103ce929190610b02565b60405180910390fd5b82821461045f5730886001836103ed9190610b2b565b815181106103fe576103fd6109d3565b5b6020026020010151898381518110610419576104186109d3565b5b60200260200101516040517fdbed4b2700000000000000000000000000000000000000000000000000000000815260040161045693929190610b5f565b60405180910390fd5b819250808061046d90610a65565b91505061034e565b508093505050509392505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663b31825bf8585856040518463ffffffff1660e01b81526004016104c293929190610b96565b602060405180830381865afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105039190610bf9565b90509392505050565b606060005b84518110156105715761053f8582815181106105305761052f6109d3565b5b60200260200101518585610483565b828281518110610552576105516109d3565b5b602002602001018181525050808061056990610a65565b915050610511565b509392505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105db82610592565b810181811067ffffffffffffffff821117156105fa576105f96105a3565b5b80604052505050565b600061060d610579565b905061061982826105d2565b919050565b600067ffffffffffffffff821115610639576106386105a3565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061067a8261064f565b9050919050565b61068a8161066f565b811461069557600080fd5b50565b6000813590506106a781610681565b92915050565b60006106c06106bb8461061e565b610603565b905080838252602082019050602084028301858111156106e3576106e261064a565b5b835b8181101561070c57806106f88882610698565b8452602084019350506020810190506106e5565b5050509392505050565b600082601f83011261072b5761072a61058d565b5b813561073b8482602086016106ad565b91505092915050565b6000819050919050565b61075781610744565b811461076257600080fd5b50565b6000813590506107748161074e565b92915050565b6000806000806080858703121561079457610793610583565b5b600085013567ffffffffffffffff8111156107b2576107b1610588565b5b6107be87828801610716565b94505060206107cf87828801610765565b93505060406107e087828801610765565b92505060606107f187828801610765565b91505092959194509250565b6000819050919050565b610810816107fd565b82525050565b600060208201905061082b6000830184610807565b92915050565b60008060006060848603121561084a57610849610583565b5b600084013567ffffffffffffffff81111561086857610867610588565b5b61087486828701610716565b935050602061088586828701610765565b925050604061089686828701610765565b9150509250925092565b6000806000606084860312156108b9576108b8610583565b5b60006108c786828701610698565b93505060206108d886828701610765565b92505060406108e986828701610765565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610928816107fd565b82525050565b600061093a838361091f565b60208301905092915050565b6000602082019050919050565b600061095e826108f3565b61096881856108fe565b93506109738361090f565b8060005b838110156109a457815161098b888261092e565b975061099683610946565b925050600181019050610977565b5085935050505092915050565b600060208201905081810360008301526109cb8184610953565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a3c82610744565b9150610a4783610744565b9250828201905080821115610a5f57610a5e610a02565b5b92915050565b6000610a7082610744565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aa257610aa1610a02565b5b600182019050919050565b610ab68161066f565b82525050565b610ac581610744565b82525050565b6000606082019050610ae06000830186610aad565b610aed6020830185610abc565b610afa6040830184610807565b949350505050565b6000604082019050610b176000830185610aad565b610b246020830184610aad565b9392505050565b6000610b3682610744565b9150610b4183610744565b9250828203905081811115610b5957610b58610a02565b5b92915050565b6000606082019050610b746000830186610aad565b610b816020830185610aad565b610b8e6040830184610aad565b949350505050565b6000606082019050610bab6000830186610aad565b610bb86020830185610abc565b610bc56040830184610abc565b949350505050565b610bd6816107fd565b8114610be157600080fd5b50565b600081519050610bf381610bcd565b92915050565b600060208284031215610c0f57610c0e610583565b5b6000610c1d84828501610be4565b9150509291505056fea2646970667358221220adf3938367e12aaf1153aa4152fcc50f0eb69564932dd70e1e74b27406c520bb64736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC5C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7EF79F8C EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x84DD0D12 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xB31825BF EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xD56154AB EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x77A JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x831 JUMP JUMPDEST PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x8A0 JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x831 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP2 SWAP1 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11F DUP7 DUP7 DUP7 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x184 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xA31 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP1 PUSH2 0x17C SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x124 JUMP JUMPDEST POP PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AB JUMPI PUSH2 0x1AA PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x1DB JUMPI DUP1 SWAP4 POP DUP2 SWAP6 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1E8 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x18D JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 PUSH1 0x20 DUP2 LT PUSH2 0x213 JUMPI PUSH2 0x212 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE DUP1 DUP1 PUSH2 0x256 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F4 JUMP JUMPDEST POP DUP4 DUP2 LT ISZERO PUSH2 0x2A8 JUMPI ADDRESS DUP2 DUP5 PUSH1 0x40 MLOAD PUSH32 0x22BCB23B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xACB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C0 DUP6 DUP6 DUP6 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D8 JUMPI PUSH2 0x2D7 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 SHL DUP2 SUB PUSH2 0x346 JUMPI ADDRESS DUP7 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x301 JUMPI PUSH2 0x300 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x2A0C203900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33D SWAP3 SWAP2 SWAP1 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x475 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x36A JUMPI PUSH2 0x369 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x3D7 JUMPI ADDRESS DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x392 JUMPI PUSH2 0x391 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x2A0C203900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CE SWAP3 SWAP2 SWAP1 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 EQ PUSH2 0x45F JUMPI ADDRESS DUP9 PUSH1 0x1 DUP4 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0xB2B JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3FE JUMPI PUSH2 0x3FD PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x419 JUMPI PUSH2 0x418 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xDBED4B2700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x456 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP3 POP DUP1 DUP1 PUSH2 0x46D SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x34E JUMP JUMPDEST POP DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB31825BF DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xBF9 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x571 JUMPI PUSH2 0x53F DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x530 JUMPI PUSH2 0x52F PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP6 PUSH2 0x483 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x552 JUMPI PUSH2 0x551 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x569 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x511 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5DB DUP3 PUSH2 0x592 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x5FA JUMPI PUSH2 0x5F9 PUSH2 0x5A3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60D PUSH2 0x579 JUMP JUMPDEST SWAP1 POP PUSH2 0x619 DUP3 DUP3 PUSH2 0x5D2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x638 PUSH2 0x5A3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67A DUP3 PUSH2 0x64F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68A DUP2 PUSH2 0x66F JUMP JUMPDEST DUP2 EQ PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6A7 DUP2 PUSH2 0x681 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6C0 PUSH2 0x6BB DUP5 PUSH2 0x61E JUMP JUMPDEST PUSH2 0x603 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x6E3 JUMPI PUSH2 0x6E2 PUSH2 0x64A JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x70C JUMPI DUP1 PUSH2 0x6F8 DUP9 DUP3 PUSH2 0x698 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6E5 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x72B JUMPI PUSH2 0x72A PUSH2 0x58D JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x73B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x6AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x757 DUP2 PUSH2 0x744 JUMP JUMPDEST DUP2 EQ PUSH2 0x762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x774 DUP2 PUSH2 0x74E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x794 JUMPI PUSH2 0x793 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH2 0x7B1 PUSH2 0x588 JUMP JUMPDEST JUMPDEST PUSH2 0x7BE DUP8 DUP3 DUP9 ADD PUSH2 0x716 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x7CF DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x7E0 DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x7F1 DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x810 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x82B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x807 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x84A JUMPI PUSH2 0x849 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x868 JUMPI PUSH2 0x867 PUSH2 0x588 JUMP JUMPDEST JUMPDEST PUSH2 0x874 DUP7 DUP3 DUP8 ADD PUSH2 0x716 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x885 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x896 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8B9 JUMPI PUSH2 0x8B8 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x8C7 DUP7 DUP3 DUP8 ADD PUSH2 0x698 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x8D8 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8E9 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x928 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x93A DUP4 DUP4 PUSH2 0x91F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95E DUP3 PUSH2 0x8F3 JUMP JUMPDEST PUSH2 0x968 DUP2 DUP6 PUSH2 0x8FE JUMP JUMPDEST SWAP4 POP PUSH2 0x973 DUP4 PUSH2 0x90F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9A4 JUMPI DUP2 MLOAD PUSH2 0x98B DUP9 DUP3 PUSH2 0x92E JUMP JUMPDEST SWAP8 POP PUSH2 0x996 DUP4 PUSH2 0x946 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x977 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x9CB DUP2 DUP5 PUSH2 0x953 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA3C DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH2 0xA47 DUP4 PUSH2 0x744 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xA5F JUMPI PUSH2 0xA5E PUSH2 0xA02 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA70 DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA02 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAB6 DUP2 PUSH2 0x66F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0x744 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAE0 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xAED PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xABC JUMP JUMPDEST PUSH2 0xAFA PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x807 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xB17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB36 DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH2 0xB41 DUP4 PUSH2 0x744 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0xB59 JUMPI PUSH2 0xB58 PUSH2 0xA02 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xB74 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB81 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB8E PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xBAB PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xBB8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xABC JUMP JUMPDEST PUSH2 0xBC5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xABC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xBD6 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP2 EQ PUSH2 0xBE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xBF3 DUP2 PUSH2 0xBCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC0F JUMPI PUSH2 0xC0E PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1D DUP5 DUP3 DUP6 ADD PUSH2 0xBE4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAD RETURN SWAP4 DUP4 PUSH8 0xE12AAF1153AA4152 0xFC 0xC5 0xF 0xE 0xB6 SWAP6 PUSH5 0x932DD70E1E PUSH21 0xB27406C520BB64736F6C6343000811003300000000 ",
"sourceMap": "100:4935:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getAgreedOnHeader_206": {
"entryPoint": 690,
"id": 206,
"parameterSlots": 3,
"returnSlots": 1
},
"@getHeaderFromOracle_52": {
"entryPoint": 1155,
"id": 52,
"parameterSlots": 3,
"returnSlots": 1
},
"@getHeaderFromThreshold_328": {
"entryPoint": 273,
"id": 328,
"parameterSlots": 4,
"returnSlots": 1
},
"@getHeadersFromOracles_92": {
"entryPoint": 1292,
"id": 92,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 1709,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 1688,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 1814,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32_fromMemory": {
"entryPoint": 3044,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1893,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_uint256t_uint256": {
"entryPoint": 2208,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256": {
"entryPoint": 2097,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256t_uint256": {
"entryPoint": 1914,
"id": null,
"parameterSlots": 2,
"returnSlots": 4
},
"abi_decode_tuple_t_bytes32_fromMemory": {
"entryPoint": 3065,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32": {
"entryPoint": 2350,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 2733,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack": {
"entryPoint": 2387,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes32_to_t_bytes32": {
"entryPoint": 2335,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 2055,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2748,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
"entryPoint": 2818,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": {
"entryPoint": 2911,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_bytes32__to_t_address_t_uint256_t_bytes32__fromStack_reversed": {
"entryPoint": 2763,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 2966,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 2481,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 2070,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1539,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1401,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 1566,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr": {
"entryPoint": 2319,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_bytes32_$dyn_memory_ptr": {
"entryPoint": 2291,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr": {
"entryPoint": 2374,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack": {
"entryPoint": 2302,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 2609,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 2859,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1647,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 2045,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1615,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1860,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1490,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 2661,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2562,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 2515,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1443,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1421,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 1610,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1416,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1411,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1426,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 1665,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes32": {
"entryPoint": 3021,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1870,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:12060:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:2"
},
"nodeType": "YulFunctionCall",
"src": "67:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:2",
"type": ""
}
],
"src": "7:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:2"
},
"nodeType": "YulFunctionCall",
"src": "187:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:2"
},
"nodeType": "YulFunctionCall",
"src": "310:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:2"
},
"nodeType": "YulFunctionCall",
"src": "433:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:2"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "505:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "515:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "533:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "540:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "529:3:2"
},
"nodeType": "YulFunctionCall",
"src": "529:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "549:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "545:3:2"
},
"nodeType": "YulFunctionCall",
"src": "545:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "525:3:2"
},
"nodeType": "YulFunctionCall",
"src": "525:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "515:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "498:6:2",
"type": ""
}
],
"src": "457:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "593:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "610:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "613:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "603:6:2"
},
"nodeType": "YulFunctionCall",
"src": "603:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "603:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "707:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "710:4:2",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "700:6:2"
},
"nodeType": "YulFunctionCall",
"src": "700:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "700:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "731:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "734:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "724:6:2"
},
"nodeType": "YulFunctionCall",
"src": "724:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "724:15:2"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "565:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "794:238:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "804:58:2",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "826:6:2"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "856:4:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "834:21:2"
},
"nodeType": "YulFunctionCall",
"src": "834:27:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "822:3:2"
},
"nodeType": "YulFunctionCall",
"src": "822:40:2"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "808:10:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "973:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "975:16:2"
},
"nodeType": "YulFunctionCall",
"src": "975:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "975:18:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "916:10:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "928:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "913:2:2"
},
"nodeType": "YulFunctionCall",
"src": "913:34:2"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "952:10:2"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "964:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "949:2:2"
},
"nodeType": "YulFunctionCall",
"src": "949:22:2"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "910:2:2"
},
"nodeType": "YulFunctionCall",
"src": "910:62:2"
},
"nodeType": "YulIf",
"src": "907:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1011:2:2",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1015:10:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1004:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1004:22:2"
},
"nodeType": "YulExpressionStatement",
"src": "1004:22:2"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "780:6:2",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "788:4:2",
"type": ""
}
],
"src": "751:281:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1079:88:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1089:30:2",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1099:18:2"
},
"nodeType": "YulFunctionCall",
"src": "1099:20:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1089:6:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1148:6:2"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1156:4:2"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1128:19:2"
},
"nodeType": "YulFunctionCall",
"src": "1128:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "1128:33:2"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1063:4:2",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1072:6:2",
"type": ""
}
],
"src": "1038:129:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1255:229:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1360:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1362:16:2"
},
"nodeType": "YulFunctionCall",
"src": "1362:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "1362:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1332:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1340:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1329:2:2"
},
"nodeType": "YulFunctionCall",
"src": "1329:30:2"
},
"nodeType": "YulIf",
"src": "1326:56:2"
},
{
"nodeType": "YulAssignment",
"src": "1392:25:2",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1404:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1412:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1400:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1400:17:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1392:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1454:23:2",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1466:4:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1472:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1462:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1462:15:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1454:4:2"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1239:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1250:4:2",
"type": ""
}
],
"src": "1173:311:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1579:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1599:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1589:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1589:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "1589:12:2"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "1490:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1658:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1668:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1683:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1690:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1679:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1679:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1668:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1640:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1650:7:2",
"type": ""
}
],
"src": "1613:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1790:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1800:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1829:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1811:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1811:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1800:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1772:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1782:7:2",
"type": ""
}
],
"src": "1745:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1890:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1947:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1956:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1959:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1949:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1949:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "1949:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1913:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1938:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1920:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1920:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1910:2:2"
},
"nodeType": "YulFunctionCall",
"src": "1910:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1903:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1903:43:2"
},
"nodeType": "YulIf",
"src": "1900:63:2"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1883:5:2",
"type": ""
}
],
"src": "1847:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2027:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2037:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2059:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2046:12:2"
},
"nodeType": "YulFunctionCall",
"src": "2046:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2037:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2102:5:2"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "2075:26:2"
},
"nodeType": "YulFunctionCall",
"src": "2075:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "2075:33:2"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2005:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2013:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2021:5:2",
"type": ""
}
],
"src": "1975:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2239:608:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2249:90:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2331:6:2"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2274:56:2"
},
"nodeType": "YulFunctionCall",
"src": "2274:64:2"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2258:15:2"
},
"nodeType": "YulFunctionCall",
"src": "2258:81:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2249:5:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2348:16:2",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "2359:5:2"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2352:3:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2381:5:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2388:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2374:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2374:21:2"
},
"nodeType": "YulExpressionStatement",
"src": "2374:21:2"
},
{
"nodeType": "YulAssignment",
"src": "2404:23:2",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2415:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2422:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2411:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2411:16:2"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2404:3:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2437:44:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2455:6:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2467:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2475:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "2463:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2463:17:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2451:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2451:30:2"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "2441:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2509:103:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "2523:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2523:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2523:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "2496:6:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2504:3:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2493:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2493:15:2"
},
"nodeType": "YulIf",
"src": "2490:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2697:144:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2712:21:2",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "2730:3:2"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "2716:10:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2754:3:2"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "2780:10:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2792:3:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "2759:20:2"
},
"nodeType": "YulFunctionCall",
"src": "2759:37:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2747:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2747:50:2"
},
"nodeType": "YulExpressionStatement",
"src": "2747:50:2"
},
{
"nodeType": "YulAssignment",
"src": "2810:21:2",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2821:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2826:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2817:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2817:14:2"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2810:3:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2650:3:2"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "2655:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2647:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2647:15:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2663:25:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2665:21:2",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2676:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2681:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2672:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2672:14:2"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2665:3:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2625:21:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2627:17:2",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2638:6:2"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2631:3:2",
"type": ""
}
]
}
]
},
"src": "2621:220:2"
}
]
},
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2209:6:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2217:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2225:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2233:5:2",
"type": ""
}
],
"src": "2137:710:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2947:293:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2996:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2998:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2998:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2998:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2975:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2983:4:2",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2971:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2971:17:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2990:3:2"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2967:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2967:27:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2960:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2960:35:2"
},
"nodeType": "YulIf",
"src": "2957:122:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3088:34:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3115:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3102:12:2"
},
"nodeType": "YulFunctionCall",
"src": "3102:20:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3092:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3131:103:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3207:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3215:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3203:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3203:17:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3222:6:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3230:3:2"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3140:62:2"
},
"nodeType": "YulFunctionCall",
"src": "3140:94:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3131:5:2"
}
]
}
]
},
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2925:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2933:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2941:5:2",
"type": ""
}
],
"src": "2870:370:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3291:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3301:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "3312:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3301:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3273:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3283:7:2",
"type": ""
}
],
"src": "3246:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3372:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3429:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3438:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3441:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3431:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3431:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "3431:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3395:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3420:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3402:17:2"
},
"nodeType": "YulFunctionCall",
"src": "3402:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3392:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3392:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3385:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3385:43:2"
},
"nodeType": "YulIf",
"src": "3382:63:2"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3365:5:2",
"type": ""
}
],
"src": "3329:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3509:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3519:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3541:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3528:12:2"
},
"nodeType": "YulFunctionCall",
"src": "3528:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3519:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3584:5:2"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3557:26:2"
},
"nodeType": "YulFunctionCall",
"src": "3557:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "3557:33:2"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3487:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3495:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3503:5:2",
"type": ""
}
],
"src": "3457:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3744:833:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3791:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3793:77:2"
},
"nodeType": "YulFunctionCall",
"src": "3793:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "3793:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3765:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3774:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3761:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3761:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3786:3:2",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3757:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3757:33:2"
},
"nodeType": "YulIf",
"src": "3754:120:2"
},
{
"nodeType": "YulBlock",
"src": "3884:302:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3899:45:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3930:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3941:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3926:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3926:17:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3913:12:2"
},
"nodeType": "YulFunctionCall",
"src": "3913:31:2"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3903:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3991:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3993:77:2"
},
"nodeType": "YulFunctionCall",
"src": "3993:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "3993:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3963:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3971:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3960:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3960:30:2"
},
"nodeType": "YulIf",
"src": "3957:117:2"
},
{
"nodeType": "YulAssignment",
"src": "4088:88:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4148:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4159:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4144:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4144:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4168:7:2"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4098:45:2"
},
"nodeType": "YulFunctionCall",
"src": "4098:78:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4088:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4196:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4211:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4225:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4215:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4241:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4276:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4287:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4272:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4272:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4296:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "4251:20:2"
},
"nodeType": "YulFunctionCall",
"src": "4251:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4241:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4324:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4339:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4353:2:2",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4343:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4369:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4404:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4415:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4400:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4400:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4424:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "4379:20:2"
},
"nodeType": "YulFunctionCall",
"src": "4379:53:2"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "4369:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4452:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4467:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4481:2:2",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4471:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4497:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4532:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4543:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4528:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4528:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4552:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "4507:20:2"
},
"nodeType": "YulFunctionCall",
"src": "4507:53:2"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "4497:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3690:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3701:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3713:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3721:6:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3729:6:2",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "3737:6:2",
"type": ""
}
],
"src": "3602:975:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4628:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4638:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "4649:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4638:7:2"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4610:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4620:7:2",
"type": ""
}
],
"src": "4583:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4731:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4748:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4771:5:2"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "4753:17:2"
},
"nodeType": "YulFunctionCall",
"src": "4753:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4741:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4741:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "4741:37:2"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4719:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4726:3:2",
"type": ""
}
],
"src": "4666:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4888:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4898:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4910:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4921:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4906:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4906:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4898:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4978:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4991:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5002:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4987:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4987:17:2"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "4934:43:2"
},
"nodeType": "YulFunctionCall",
"src": "4934:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "4934:71:2"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4860:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4872:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4883:4:2",
"type": ""
}
],
"src": "4790:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5143:704:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5189:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5191:77:2"
},
"nodeType": "YulFunctionCall",
"src": "5191:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "5191:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5164:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5173:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5160:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5160:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5185:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5156:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5156:32:2"
},
"nodeType": "YulIf",
"src": "5153:119:2"
},
{
"nodeType": "YulBlock",
"src": "5282:302:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5297:45:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5328:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5339:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5324:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5324:17:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5311:12:2"
},
"nodeType": "YulFunctionCall",
"src": "5311:31:2"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5301:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5389:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5391:77:2"
},
"nodeType": "YulFunctionCall",
"src": "5391:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "5391:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5361:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5369:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5358:2:2"
},
"nodeType": "YulFunctionCall",
"src": "5358:30:2"
},
"nodeType": "YulIf",
"src": "5355:117:2"
},
{
"nodeType": "YulAssignment",
"src": "5486:88:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5546:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5557:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5542:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5542:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5566:7:2"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5496:45:2"
},
"nodeType": "YulFunctionCall",
"src": "5496:78:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5486:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5594:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5609:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5623:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5613:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5639:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5674:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5685:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5670:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5670:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5694:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "5649:20:2"
},
"nodeType": "YulFunctionCall",
"src": "5649:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5639:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5722:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5737:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5751:2:2",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5741:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5767:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5802:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5813:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5798:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5798:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5822:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "5777:20:2"
},
"nodeType": "YulFunctionCall",
"src": "5777:53:2"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "5767:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5097:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5108:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5120:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5128:6:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5136:6:2",
"type": ""
}
],
"src": "5018:829:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5953:519:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5999:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "6001:77:2"
},
"nodeType": "YulFunctionCall",
"src": "6001:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "6001:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5974:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5983:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5970:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5970:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5995:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5966:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5966:32:2"
},
"nodeType": "YulIf",
"src": "5963:119:2"
},
{
"nodeType": "YulBlock",
"src": "6092:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6107:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6121:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6111:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6136:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6171:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6182:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6167:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6167:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6191:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "6146:20:2"
},
"nodeType": "YulFunctionCall",
"src": "6146:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6136:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6219:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6234:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6248:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6238:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6264:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6299:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6310:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6295:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6295:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6319:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6274:20:2"
},
"nodeType": "YulFunctionCall",
"src": "6274:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6264:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6347:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6362:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6376:2:2",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6366:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6392:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6427:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6438:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6423:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6423:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6447:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6402:20:2"
},
"nodeType": "YulFunctionCall",
"src": "6402:53:2"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6392:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5907:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5918:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5930:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5938:6:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5946:6:2",
"type": ""
}
],
"src": "5853:619:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6552:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6563:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6579:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6573:5:2"
},
"nodeType": "YulFunctionCall",
"src": "6573:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6563:6:2"
}
]
}
]
},
"name": "array_length_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6535:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6545:6:2",
"type": ""
}
],
"src": "6478:114:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6709:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6726:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6731:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6719:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6719:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "6719:19:2"
},
{
"nodeType": "YulAssignment",
"src": "6747:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6766:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6771:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6762:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6762:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "6747:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6681:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6686:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "6697:11:2",
"type": ""
}
],
"src": "6598:184:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6860:60:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6870:11:2",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "6878:3:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6870:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "6891:22:2",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "6903:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6908:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6899:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6899:14:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6891:4:2"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "6847:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "6855:4:2",
"type": ""
}
],
"src": "6788:132:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6981:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6998:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7021:5:2"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "7003:17:2"
},
"nodeType": "YulFunctionCall",
"src": "7003:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6991:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6991:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "6991:37:2"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6969:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6976:3:2",
"type": ""
}
],
"src": "6926:108:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7120:99:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7164:6:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7172:3:2"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32",
"nodeType": "YulIdentifier",
"src": "7130:33:2"
},
"nodeType": "YulFunctionCall",
"src": "7130:46:2"
},
"nodeType": "YulExpressionStatement",
"src": "7130:46:2"
},
{
"nodeType": "YulAssignment",
"src": "7185:28:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7203:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7208:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7199:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7199:14:2"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "7185:10:2"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_bytes32_to_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7093:6:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7101:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "7109:10:2",
"type": ""
}
],
"src": "7040:179:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7300:38:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7310:22:2",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "7322:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7327:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7318:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7318:14:2"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "7310:4:2"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "7287:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "7295:4:2",
"type": ""
}
],
"src": "7225:113:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7498:608:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7508:68:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7570:5:2"
}
],
"functionName": {
"name": "array_length_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7522:47:2"
},
"nodeType": "YulFunctionCall",
"src": "7522:54:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7512:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7585:93:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7666:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7671:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7592:73:2"
},
"nodeType": "YulFunctionCall",
"src": "7592:86:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7585:3:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7687:71:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7752:5:2"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7702:49:2"
},
"nodeType": "YulFunctionCall",
"src": "7702:56:2"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "7691:7:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7767:21:2",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "7781:7:2"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "7771:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7857:224:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7871:34:2",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "7898:6:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "7892:5:2"
},
"nodeType": "YulFunctionCall",
"src": "7892:13:2"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "7875:13:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7918:70:2",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "7969:13:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7984:3:2"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_bytes32_to_t_bytes32",
"nodeType": "YulIdentifier",
"src": "7925:43:2"
},
"nodeType": "YulFunctionCall",
"src": "7925:63:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7918:3:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8001:70:2",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "8064:6:2"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "8011:52:2"
},
"nodeType": "YulFunctionCall",
"src": "8011:60:2"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "8001:6:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7819:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7822:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7816:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7816:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "7830:18:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7832:14:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7841:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7844:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7837:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7837:9:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7832:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "7801:14:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7803:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "7812:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "7807:1:2",
"type": ""
}
]
}
]
},
"src": "7797:284:2"
},
{
"nodeType": "YulAssignment",
"src": "8090:10:2",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8097:3:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8090:3:2"
}
]
}
]
},
"name": "abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7477:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7484:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7493:3:2",
"type": ""
}
],
"src": "7374:732:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8260:225:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8270:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8282:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8293:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8278:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8278:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8270:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8317:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8328:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8313:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8313:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8336:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8342:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8332:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8332:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8306:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8306:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "8306:47:2"
},
{
"nodeType": "YulAssignment",
"src": "8362:116:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8464:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8473:4:2"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8370:93:2"
},
"nodeType": "YulFunctionCall",
"src": "8370:108:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8362:4:2"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8232:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8244:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8255:4:2",
"type": ""
}
],
"src": "8112:373:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8519:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8536:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8539:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8529:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8529:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "8529:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8633:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8636:4:2",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8626:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8626:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8626:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8657:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8660:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8650:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8650:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8650:15:2"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "8491:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8705:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8722:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8725:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8715:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8715:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "8715:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8819:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8822:4:2",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8812:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8812:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8812:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8843:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8846:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8836:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8836:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8836:15:2"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "8677:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8907:147:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8917:25:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8940:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8922:17:2"
},
"nodeType": "YulFunctionCall",
"src": "8922:20:2"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8917:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8951:25:2",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8974:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8956:17:2"
},
"nodeType": "YulFunctionCall",
"src": "8956:20:2"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8951:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8985:16:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8996:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8999:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8992:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8992:9:2"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "8985:3:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9025:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "9027:16:2"
},
"nodeType": "YulFunctionCall",
"src": "9027:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "9027:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "9017:1:2"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "9020:3:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "9014:2:2"
},
"nodeType": "YulFunctionCall",
"src": "9014:10:2"
},
"nodeType": "YulIf",
"src": "9011:36:2"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "8894:1:2",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "8897:1:2",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "8903:3:2",
"type": ""
}
],
"src": "8863:191:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9103:190:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9113:33:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9140:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "9122:17:2"
},
"nodeType": "YulFunctionCall",
"src": "9122:24:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9113:5:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9236:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "9238:16:2"
},
"nodeType": "YulFunctionCall",
"src": "9238:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "9238:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9161:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9168:66:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "9158:2:2"
},
"nodeType": "YulFunctionCall",
"src": "9158:77:2"
},
"nodeType": "YulIf",
"src": "9155:103:2"
},
{
"nodeType": "YulAssignment",
"src": "9267:20:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9278:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9285:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9274:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9274:13:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "9267:3:2"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9089:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "9099:3:2",
"type": ""
}
],
"src": "9060:233:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9364:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9381:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9404:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "9386:17:2"
},
"nodeType": "YulFunctionCall",
"src": "9386:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9374:6:2"
},
"nodeType": "YulFunctionCall",
"src": "9374:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "9374:37:2"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9352:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9359:3:2",
"type": ""
}
],
"src": "9299:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9488:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9505:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9528:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "9510:17:2"
},
"nodeType": "YulFunctionCall",
"src": "9510:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9498:6:2"
},
"nodeType": "YulFunctionCall",
"src": "9498:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "9498:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9476:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9483:3:2",
"type": ""
}
],
"src": "9423:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9701:288:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9711:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9723:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9734:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9719:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9719:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9711:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9791:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9804:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9815:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9800:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9800:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "9747:43:2"
},
"nodeType": "YulFunctionCall",
"src": "9747:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "9747:71:2"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "9872:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9885:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9896:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9881:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9881:18:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "9828:43:2"
},
"nodeType": "YulFunctionCall",
"src": "9828:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "9828:72:2"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "9954:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9967:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9978:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9963:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9963:18:2"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "9910:43:2"
},
"nodeType": "YulFunctionCall",
"src": "9910:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "9910:72:2"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_bytes32__to_t_address_t_uint256_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9657:9:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "9669:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "9677:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9685:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9696:4:2",
"type": ""
}
],
"src": "9547:442:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10121:206:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10131:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10143:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10154:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10139:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10139:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10131:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10211:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10224:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10235:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10220:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10220:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10167:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10167:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "10167:71:2"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "10292:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10305:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10316:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10301:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10301:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10248:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10248:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "10248:72:2"
}
]
},
"name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10085:9:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "10097:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10105:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10116:4:2",
"type": ""
}
],
"src": "9995:332:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10378:149:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10388:25:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10411:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "10393:17:2"
},
"nodeType": "YulFunctionCall",
"src": "10393:20:2"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10388:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "10422:25:2",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10445:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "10427:17:2"
},
"nodeType": "YulFunctionCall",
"src": "10427:20:2"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10422:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "10456:17:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10468:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10471:1:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10464:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10464:9:2"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "10456:4:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10498:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "10500:16:2"
},
"nodeType": "YulFunctionCall",
"src": "10500:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "10500:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "10489:4:2"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10495:1:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "10486:2:2"
},
"nodeType": "YulFunctionCall",
"src": "10486:11:2"
},
"nodeType": "YulIf",
"src": "10483:37:2"
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "10364:1:2",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "10367:1:2",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "10373:4:2",
"type": ""
}
],
"src": "10333:194:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10687:288:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10697:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10709:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10720:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10705:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10705:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10697:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10777:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10790:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10801:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10786:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10786:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10733:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10733:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "10733:71:2"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "10858:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10871:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10882:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10867:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10867:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10814:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10814:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "10814:72:2"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "10940:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10953:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10964:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10949:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10949:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "10896:43:2"
},
"nodeType": "YulFunctionCall",
"src": "10896:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "10896:72:2"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10643:9:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "10655:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "10663:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10671:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10682:4:2",
"type": ""
}
],
"src": "10533:442:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11135:288:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11145:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11157:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11168:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11153:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11153:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11145:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11225:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11238:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11249:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11234:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11234:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "11181:43:2"
},
"nodeType": "YulFunctionCall",
"src": "11181:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "11181:71:2"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "11306:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11319:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11330:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11315:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11315:18:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "11262:43:2"
},
"nodeType": "YulFunctionCall",
"src": "11262:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "11262:72:2"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "11388:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11401:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11412:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11397:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11397:18:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "11344:43:2"
},
"nodeType": "YulFunctionCall",
"src": "11344:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "11344:72:2"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11091:9:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "11103:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "11111:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11119:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11130:4:2",
"type": ""
}
],
"src": "10981:442:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11472:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11529:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11538:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11541:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11531:6:2"
},
"nodeType": "YulFunctionCall",
"src": "11531:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "11531:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11495:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11520:5:2"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "11502:17:2"
},
"nodeType": "YulFunctionCall",
"src": "11502:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "11492:2:2"
},
"nodeType": "YulFunctionCall",
"src": "11492:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "11485:6:2"
},
"nodeType": "YulFunctionCall",
"src": "11485:43:2"
},
"nodeType": "YulIf",
"src": "11482:63:2"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11465:5:2",
"type": ""
}
],
"src": "11429:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11620:80:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11630:22:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11645:6:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "11639:5:2"
},
"nodeType": "YulFunctionCall",
"src": "11639:13:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11630:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11688:5:2"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "11661:26:2"
},
"nodeType": "YulFunctionCall",
"src": "11661:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "11661:33:2"
}
]
},
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11598:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11606:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11614:5:2",
"type": ""
}
],
"src": "11557:143:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11783:274:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11829:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "11831:77:2"
},
"nodeType": "YulFunctionCall",
"src": "11831:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "11831:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11804:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11813:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11800:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11800:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11825:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "11796:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11796:32:2"
},
"nodeType": "YulIf",
"src": "11793:119:2"
},
{
"nodeType": "YulBlock",
"src": "11922:128:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11937:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11951:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11941:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "11966:74:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12012:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12023:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12008:3:2"
},
"nodeType": "YulFunctionCall",
"src": "12008:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "12032:7:2"
}
],
"functionName": {
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulIdentifier",
"src": "11976:31:2"
},
"nodeType": "YulFunctionCall",
"src": "11976:64:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11966:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11753:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "11764:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11776:6:2",
"type": ""
}
],
"src": "11706:351:2"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_bytes32_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(value0, pos) -> updatedPos {\n abi_encode_t_bytes32_to_t_bytes32(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // bytes32[] -> bytes32[]\n function abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bytes32_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_bytes32__to_t_address_t_uint256_t_bytes32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80637ef79f8c1461005157806384dd0d1214610081578063b31825bf146100b1578063d56154ab146100e1575b600080fd5b61006b6004803603810190610066919061077a565b610111565b6040516100789190610816565b60405180910390f35b61009b60048036038101906100969190610831565b6102b2565b6040516100a89190610816565b60405180910390f35b6100cb60048036038101906100c691906108a0565b610483565b6040516100d89190610816565b60405180910390f35b6100fb60048036038101906100f69190610831565b61050c565b60405161010891906109b1565b60405180910390f35b60008061011f86868661050c565b905060005b8151811015610184576001600080848481518110610145576101446109d3565b5b60200260200101518152602001908152602001600020600082825461016a9190610a31565b92505081905550808061017c90610a65565b915050610124565b50600080600090505b82518110156101f05760008382815181106101ab576101aa6109d3565b5b602002602001015190506000806000838152602001908152602001600020549050838111156101db578093508195505b505080806101e890610a65565b91505061018d565b5060005b825181101561025e57600080858360208110610213576102126109d3565b5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009055808061025690610a65565b9150506101f4565b50838110156102a8573081846040517f22bcb23b00000000000000000000000000000000000000000000000000000000815260040161029f93929190610acb565b60405180910390fd5b5050949350505050565b6000806102c085858561050c565b90506000816000815181106102d8576102d76109d3565b5b602002602001015190506000801b8103610346573086600081518110610301576103006109d3565b5b60200260200101516040517f2a0c203900000000000000000000000000000000000000000000000000000000815260040161033d929190610b02565b60405180910390fd5b600080600190505b83518110156104755783818151811061036a576103696109d3565b5b602002602001015191506000801b82036103d75730888281518110610392576103916109d3565b5b60200260200101516040517f2a0c20390000000000000000000000000000000000000000000000000000000081526004016103ce929190610b02565b60405180910390fd5b82821461045f5730886001836103ed9190610b2b565b815181106103fe576103fd6109d3565b5b6020026020010151898381518110610419576104186109d3565b5b60200260200101516040517fdbed4b2700000000000000000000000000000000000000000000000000000000815260040161045693929190610b5f565b60405180910390fd5b819250808061046d90610a65565b91505061034e565b508093505050509392505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663b31825bf8585856040518463ffffffff1660e01b81526004016104c293929190610b96565b602060405180830381865afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105039190610bf9565b90509392505050565b606060005b84518110156105715761053f8582815181106105305761052f6109d3565b5b60200260200101518585610483565b828281518110610552576105516109d3565b5b602002602001018181525050808061056990610a65565b915050610511565b509392505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105db82610592565b810181811067ffffffffffffffff821117156105fa576105f96105a3565b5b80604052505050565b600061060d610579565b905061061982826105d2565b919050565b600067ffffffffffffffff821115610639576106386105a3565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061067a8261064f565b9050919050565b61068a8161066f565b811461069557600080fd5b50565b6000813590506106a781610681565b92915050565b60006106c06106bb8461061e565b610603565b905080838252602082019050602084028301858111156106e3576106e261064a565b5b835b8181101561070c57806106f88882610698565b8452602084019350506020810190506106e5565b5050509392505050565b600082601f83011261072b5761072a61058d565b5b813561073b8482602086016106ad565b91505092915050565b6000819050919050565b61075781610744565b811461076257600080fd5b50565b6000813590506107748161074e565b92915050565b6000806000806080858703121561079457610793610583565b5b600085013567ffffffffffffffff8111156107b2576107b1610588565b5b6107be87828801610716565b94505060206107cf87828801610765565b93505060406107e087828801610765565b92505060606107f187828801610765565b91505092959194509250565b6000819050919050565b610810816107fd565b82525050565b600060208201905061082b6000830184610807565b92915050565b60008060006060848603121561084a57610849610583565b5b600084013567ffffffffffffffff81111561086857610867610588565b5b61087486828701610716565b935050602061088586828701610765565b925050604061089686828701610765565b9150509250925092565b6000806000606084860312156108b9576108b8610583565b5b60006108c786828701610698565b93505060206108d886828701610765565b92505060406108e986828701610765565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610928816107fd565b82525050565b600061093a838361091f565b60208301905092915050565b6000602082019050919050565b600061095e826108f3565b61096881856108fe565b93506109738361090f565b8060005b838110156109a457815161098b888261092e565b975061099683610946565b925050600181019050610977565b5085935050505092915050565b600060208201905081810360008301526109cb8184610953565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a3c82610744565b9150610a4783610744565b9250828201905080821115610a5f57610a5e610a02565b5b92915050565b6000610a7082610744565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aa257610aa1610a02565b5b600182019050919050565b610ab68161066f565b82525050565b610ac581610744565b82525050565b6000606082019050610ae06000830186610aad565b610aed6020830185610abc565b610afa6040830184610807565b949350505050565b6000604082019050610b176000830185610aad565b610b246020830184610aad565b9392505050565b6000610b3682610744565b9150610b4183610744565b9250828203905081811115610b5957610b58610a02565b5b92915050565b6000606082019050610b746000830186610aad565b610b816020830185610aad565b610b8e6040830184610aad565b949350505050565b6000606082019050610bab6000830186610aad565b610bb86020830185610abc565b610bc56040830184610abc565b949350505050565b610bd6816107fd565b8114610be157600080fd5b50565b600081519050610bf381610bcd565b92915050565b600060208284031215610c0f57610c0e610583565b5b6000610c1d84828501610be4565b9150509291505056fea2646970667358221220adf3938367e12aaf1153aa4152fcc50f0eb69564932dd70e1e74b27406c520bb64736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7EF79F8C EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x84DD0D12 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xB31825BF EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xD56154AB EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x77A JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x831 JUMP JUMPDEST PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x8A0 JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x816 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x831 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP2 SWAP1 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11F DUP7 DUP7 DUP7 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x184 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xA31 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP1 PUSH2 0x17C SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x124 JUMP JUMPDEST POP PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AB JUMPI PUSH2 0x1AA PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x1DB JUMPI DUP1 SWAP4 POP DUP2 SWAP6 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1E8 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x18D JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 PUSH1 0x20 DUP2 LT PUSH2 0x213 JUMPI PUSH2 0x212 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE DUP1 DUP1 PUSH2 0x256 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1F4 JUMP JUMPDEST POP DUP4 DUP2 LT ISZERO PUSH2 0x2A8 JUMPI ADDRESS DUP2 DUP5 PUSH1 0x40 MLOAD PUSH32 0x22BCB23B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xACB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C0 DUP6 DUP6 DUP6 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2D8 JUMPI PUSH2 0x2D7 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 SHL DUP2 SUB PUSH2 0x346 JUMPI ADDRESS DUP7 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x301 JUMPI PUSH2 0x300 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x2A0C203900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33D SWAP3 SWAP2 SWAP1 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x475 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x36A JUMPI PUSH2 0x369 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x3D7 JUMPI ADDRESS DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x392 JUMPI PUSH2 0x391 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x2A0C203900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CE SWAP3 SWAP2 SWAP1 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 EQ PUSH2 0x45F JUMPI ADDRESS DUP9 PUSH1 0x1 DUP4 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0xB2B JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x3FE JUMPI PUSH2 0x3FD PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x419 JUMPI PUSH2 0x418 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xDBED4B2700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x456 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP3 POP DUP1 DUP1 PUSH2 0x46D SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x34E JUMP JUMPDEST POP DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB31825BF DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xBF9 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x571 JUMPI PUSH2 0x53F DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x530 JUMPI PUSH2 0x52F PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP6 PUSH2 0x483 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x552 JUMPI PUSH2 0x551 PUSH2 0x9D3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x569 SWAP1 PUSH2 0xA65 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x511 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5DB DUP3 PUSH2 0x592 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x5FA JUMPI PUSH2 0x5F9 PUSH2 0x5A3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60D PUSH2 0x579 JUMP JUMPDEST SWAP1 POP PUSH2 0x619 DUP3 DUP3 PUSH2 0x5D2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x638 PUSH2 0x5A3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67A DUP3 PUSH2 0x64F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68A DUP2 PUSH2 0x66F JUMP JUMPDEST DUP2 EQ PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6A7 DUP2 PUSH2 0x681 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6C0 PUSH2 0x6BB DUP5 PUSH2 0x61E JUMP JUMPDEST PUSH2 0x603 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x6E3 JUMPI PUSH2 0x6E2 PUSH2 0x64A JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x70C JUMPI DUP1 PUSH2 0x6F8 DUP9 DUP3 PUSH2 0x698 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6E5 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x72B JUMPI PUSH2 0x72A PUSH2 0x58D JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x73B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x6AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x757 DUP2 PUSH2 0x744 JUMP JUMPDEST DUP2 EQ PUSH2 0x762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x774 DUP2 PUSH2 0x74E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x794 JUMPI PUSH2 0x793 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH2 0x7B1 PUSH2 0x588 JUMP JUMPDEST JUMPDEST PUSH2 0x7BE DUP8 DUP3 DUP9 ADD PUSH2 0x716 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x7CF DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x7E0 DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x7F1 DUP8 DUP3 DUP9 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x810 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x82B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x807 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x84A JUMPI PUSH2 0x849 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x868 JUMPI PUSH2 0x867 PUSH2 0x588 JUMP JUMPDEST JUMPDEST PUSH2 0x874 DUP7 DUP3 DUP8 ADD PUSH2 0x716 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x885 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x896 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8B9 JUMPI PUSH2 0x8B8 PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x8C7 DUP7 DUP3 DUP8 ADD PUSH2 0x698 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x8D8 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8E9 DUP7 DUP3 DUP8 ADD PUSH2 0x765 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x928 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x93A DUP4 DUP4 PUSH2 0x91F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95E DUP3 PUSH2 0x8F3 JUMP JUMPDEST PUSH2 0x968 DUP2 DUP6 PUSH2 0x8FE JUMP JUMPDEST SWAP4 POP PUSH2 0x973 DUP4 PUSH2 0x90F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9A4 JUMPI DUP2 MLOAD PUSH2 0x98B DUP9 DUP3 PUSH2 0x92E JUMP JUMPDEST SWAP8 POP PUSH2 0x996 DUP4 PUSH2 0x946 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x977 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x9CB DUP2 DUP5 PUSH2 0x953 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA3C DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH2 0xA47 DUP4 PUSH2 0x744 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xA5F JUMPI PUSH2 0xA5E PUSH2 0xA02 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA70 DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA02 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAB6 DUP2 PUSH2 0x66F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0x744 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAE0 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xAED PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xABC JUMP JUMPDEST PUSH2 0xAFA PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x807 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xB17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB36 DUP3 PUSH2 0x744 JUMP JUMPDEST SWAP2 POP PUSH2 0xB41 DUP4 PUSH2 0x744 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0xB59 JUMPI PUSH2 0xB58 PUSH2 0xA02 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xB74 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB81 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xB8E PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xBAB PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST PUSH2 0xBB8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xABC JUMP JUMPDEST PUSH2 0xBC5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xABC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xBD6 DUP2 PUSH2 0x7FD JUMP JUMPDEST DUP2 EQ PUSH2 0xBE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xBF3 DUP2 PUSH2 0xBCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC0F JUMPI PUSH2 0xC0E PUSH2 0x583 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1D DUP5 DUP3 DUP6 ADD PUSH2 0xBE4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAD RETURN SWAP4 DUP4 PUSH8 0xE12AAF1153AA4152 0xFC 0xC5 0xF 0xE 0xB6 SWAP6 PUSH5 0x932DD70E1E PUSH21 0xB27406C520BB64736F6C6343000811003300000000 ",
"sourceMap": "100:4935:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:994;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2454:890;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;773:277;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1624:353;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4039:994;4213:19;4244:29;4276:59;4298:14;4314:7;4323:11;4276:21;:59::i;:::-;4244:91;;4350:9;4345:103;4369:12;:19;4365:1;:23;4345:103;;;4436:1;4409:6;:23;4416:12;4429:1;4416:15;;;;;;;;:::i;:::-;;;;;;;;4409:23;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;4390:3;;;;;:::i;:::-;;;;4345:103;;;;4457:20;4492:9;4504:1;4492:13;;4487:323;4511:12;:19;4507:1;:23;4487:323;;;4551:21;4575:12;4588:1;4575:15;;;;;;;;:::i;:::-;;;;;;;;4551:39;;4604:20;4627:6;:21;4634:13;4627:21;;;;;;;;;;;;4604:44;;4681:12;4666;:27;4662:138;;;4728:12;4713:27;;4772:13;4758:27;;4662:138;4537:273;;4532:3;;;;;:::i;:::-;;;;4487:323;;;;4824:9;4819:104;4843:12;:19;4839:1;:23;4819:104;;;4890:6;:22;4897:11;4909:1;4897:14;;;;;;;:::i;:::-;;;;;4890:22;;;;;;;;;;;;;;4883:29;;;4864:3;;;;;:::i;:::-;;;;4819:104;;;;4951:9;4936:12;:24;4932:94;;;4993:4;5000:12;5014:11;4969:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;4932:94;4234:799;;4039:994;;;;;;:::o;2454:890::-;2601:19;2632:29;2664:59;2686:14;2702:7;2711:11;2664:21;:59::i;:::-;2632:91;;2733:22;2758:12;2771:1;2758:15;;;;;;;;:::i;:::-;;;;;;;;2733:40;;2813:1;2805:10;;2787:14;:28;2783:93;;2851:4;2858:14;2873:1;2858:17;;;;;;;;:::i;:::-;;;;;;;;2824:52;;;;;;;;;;;;:::i;:::-;;;;;;;;2783:93;2886:21;2922:9;2934:1;2922:13;;2917:384;2941:12;:19;2937:1;:23;2917:384;;;2997:12;3010:1;2997:15;;;;;;;;:::i;:::-;;;;;;;;2981:31;;3055:1;3047:10;;3030:13;:27;3026:92;;3093:4;3100:14;3115:1;3100:17;;;;;;;;:::i;:::-;;;;;;;;3066:52;;;;;;;;;;;;:::i;:::-;;;;;;;;3026:92;3153:14;3136:13;:31;3132:114;;3200:4;3207:14;3224:1;3222;:3;;;;:::i;:::-;3207:19;;;;;;;;:::i;:::-;;;;;;;;3228:14;3243:1;3228:17;;;;;;;;:::i;:::-;;;;;;;;3176:70;;;;;;;;;;;;;:::i;:::-;;;;;;;;3132:114;3277:13;3260:30;;2962:3;;;;;:::i;:::-;;;;2917:384;;;;3324:13;3310:27;;2622:722;;;2454:890;;;;;:::o;773:277::-;912:19;972:13;957:49;;;1007:13;1022:7;1031:11;957:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;943:100;;773:277;;;;;:::o;1624:353::-;1775:29;1821:9;1816:155;1840:14;:21;1836:1;:25;1816:155;;;1900:60;1920:14;1935:1;1920:17;;;;;;;;:::i;:::-;;;;;;;;1939:7;1948:11;1900:19;:60::i;:::-;1882:12;1895:1;1882:15;;;;;;;;:::i;:::-;;;;;;;:78;;;;;1863:3;;;;;:::i;:::-;;;;1816:155;;;;1624:353;;;;;:::o;7:75:2:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:77::-;3283:7;3312:5;3301:16;;3246:77;;;:::o;3329:122::-;3402:24;3420:5;3402:24;:::i;:::-;3395:5;3392:35;3382:63;;3441:1;3438;3431:12;3382:63;3329:122;:::o;3457:139::-;3503:5;3541:6;3528:20;3519:29;;3557:33;3584:5;3557:33;:::i;:::-;3457:139;;;;:::o;3602:975::-;3713:6;3721;3729;3737;3786:3;3774:9;3765:7;3761:23;3757:33;3754:120;;;3793:79;;:::i;:::-;3754:120;3941:1;3930:9;3926:17;3913:31;3971:18;3963:6;3960:30;3957:117;;;3993:79;;:::i;:::-;3957:117;4098:78;4168:7;4159:6;4148:9;4144:22;4098:78;:::i;:::-;4088:88;;3884:302;4225:2;4251:53;4296:7;4287:6;4276:9;4272:22;4251:53;:::i;:::-;4241:63;;4196:118;4353:2;4379:53;4424:7;4415:6;4404:9;4400:22;4379:53;:::i;:::-;4369:63;;4324:118;4481:2;4507:53;4552:7;4543:6;4532:9;4528:22;4507:53;:::i;:::-;4497:63;;4452:118;3602:975;;;;;;;:::o;4583:77::-;4620:7;4649:5;4638:16;;4583:77;;;:::o;4666:118::-;4753:24;4771:5;4753:24;:::i;:::-;4748:3;4741:37;4666:118;;:::o;4790:222::-;4883:4;4921:2;4910:9;4906:18;4898:26;;4934:71;5002:1;4991:9;4987:17;4978:6;4934:71;:::i;:::-;4790:222;;;;:::o;5018:829::-;5120:6;5128;5136;5185:2;5173:9;5164:7;5160:23;5156:32;5153:119;;;5191:79;;:::i;:::-;5153:119;5339:1;5328:9;5324:17;5311:31;5369:18;5361:6;5358:30;5355:117;;;5391:79;;:::i;:::-;5355:117;5496:78;5566:7;5557:6;5546:9;5542:22;5496:78;:::i;:::-;5486:88;;5282:302;5623:2;5649:53;5694:7;5685:6;5674:9;5670:22;5649:53;:::i;:::-;5639:63;;5594:118;5751:2;5777:53;5822:7;5813:6;5802:9;5798:22;5777:53;:::i;:::-;5767:63;;5722:118;5018:829;;;;;:::o;5853:619::-;5930:6;5938;5946;5995:2;5983:9;5974:7;5970:23;5966:32;5963:119;;;6001:79;;:::i;:::-;5963:119;6121:1;6146:53;6191:7;6182:6;6171:9;6167:22;6146:53;:::i;:::-;6136:63;;6092:117;6248:2;6274:53;6319:7;6310:6;6299:9;6295:22;6274:53;:::i;:::-;6264:63;;6219:118;6376:2;6402:53;6447:7;6438:6;6427:9;6423:22;6402:53;:::i;:::-;6392:63;;6347:118;5853:619;;;;;:::o;6478:114::-;6545:6;6579:5;6573:12;6563:22;;6478:114;;;:::o;6598:184::-;6697:11;6731:6;6726:3;6719:19;6771:4;6766:3;6762:14;6747:29;;6598:184;;;;:::o;6788:132::-;6855:4;6878:3;6870:11;;6908:4;6903:3;6899:14;6891:22;;6788:132;;;:::o;6926:108::-;7003:24;7021:5;7003:24;:::i;:::-;6998:3;6991:37;6926:108;;:::o;7040:179::-;7109:10;7130:46;7172:3;7164:6;7130:46;:::i;:::-;7208:4;7203:3;7199:14;7185:28;;7040:179;;;;:::o;7225:113::-;7295:4;7327;7322:3;7318:14;7310:22;;7225:113;;;:::o;7374:732::-;7493:3;7522:54;7570:5;7522:54;:::i;:::-;7592:86;7671:6;7666:3;7592:86;:::i;:::-;7585:93;;7702:56;7752:5;7702:56;:::i;:::-;7781:7;7812:1;7797:284;7822:6;7819:1;7816:13;7797:284;;;7898:6;7892:13;7925:63;7984:3;7969:13;7925:63;:::i;:::-;7918:70;;8011:60;8064:6;8011:60;:::i;:::-;8001:70;;7857:224;7844:1;7841;7837:9;7832:14;;7797:284;;;7801:14;8097:3;8090:10;;7498:608;;;7374:732;;;;:::o;8112:373::-;8255:4;8293:2;8282:9;8278:18;8270:26;;8342:9;8336:4;8332:20;8328:1;8317:9;8313:17;8306:47;8370:108;8473:4;8464:6;8370:108;:::i;:::-;8362:116;;8112:373;;;;:::o;8491:180::-;8539:77;8536:1;8529:88;8636:4;8633:1;8626:15;8660:4;8657:1;8650:15;8677:180;8725:77;8722:1;8715:88;8822:4;8819:1;8812:15;8846:4;8843:1;8836:15;8863:191;8903:3;8922:20;8940:1;8922:20;:::i;:::-;8917:25;;8956:20;8974:1;8956:20;:::i;:::-;8951:25;;8999:1;8996;8992:9;8985:16;;9020:3;9017:1;9014:10;9011:36;;;9027:18;;:::i;:::-;9011:36;8863:191;;;;:::o;9060:233::-;9099:3;9122:24;9140:5;9122:24;:::i;:::-;9113:33;;9168:66;9161:5;9158:77;9155:103;;9238:18;;:::i;:::-;9155:103;9285:1;9278:5;9274:13;9267:20;;9060:233;;;:::o;9299:118::-;9386:24;9404:5;9386:24;:::i;:::-;9381:3;9374:37;9299:118;;:::o;9423:::-;9510:24;9528:5;9510:24;:::i;:::-;9505:3;9498:37;9423:118;;:::o;9547:442::-;9696:4;9734:2;9723:9;9719:18;9711:26;;9747:71;9815:1;9804:9;9800:17;9791:6;9747:71;:::i;:::-;9828:72;9896:2;9885:9;9881:18;9872:6;9828:72;:::i;:::-;9910;9978:2;9967:9;9963:18;9954:6;9910:72;:::i;:::-;9547:442;;;;;;:::o;9995:332::-;10116:4;10154:2;10143:9;10139:18;10131:26;;10167:71;10235:1;10224:9;10220:17;10211:6;10167:71;:::i;:::-;10248:72;10316:2;10305:9;10301:18;10292:6;10248:72;:::i;:::-;9995:332;;;;;:::o;10333:194::-;10373:4;10393:20;10411:1;10393:20;:::i;:::-;10388:25;;10427:20;10445:1;10427:20;:::i;:::-;10422:25;;10471:1;10468;10464:9;10456:17;;10495:1;10489:4;10486:11;10483:37;;;10500:18;;:::i;:::-;10483:37;10333:194;;;;:::o;10533:442::-;10682:4;10720:2;10709:9;10705:18;10697:26;;10733:71;10801:1;10790:9;10786:17;10777:6;10733:71;:::i;:::-;10814:72;10882:2;10871:9;10867:18;10858:6;10814:72;:::i;:::-;10896;10964:2;10953:9;10949:18;10940:6;10896:72;:::i;:::-;10533:442;;;;;;:::o;10981:::-;11130:4;11168:2;11157:9;11153:18;11145:26;;11181:71;11249:1;11238:9;11234:17;11225:6;11181:71;:::i;:::-;11262:72;11330:2;11319:9;11315:18;11306:6;11262:72;:::i;:::-;11344;11412:2;11401:9;11397:18;11388:6;11344:72;:::i;:::-;10981:442;;;;;;:::o;11429:122::-;11502:24;11520:5;11502:24;:::i;:::-;11495:5;11492:35;11482:63;;11541:1;11538;11531:12;11482:63;11429:122;:::o;11557:143::-;11614:5;11645:6;11639:13;11630:22;;11661:33;11688:5;11661:33;:::i;:::-;11557:143;;;;:::o;11706:351::-;11776:6;11825:2;11813:9;11804:7;11800:23;11796:32;11793:119;;;11831:79;;:::i;:::-;11793:119;11951:1;11976:64;12032:7;12023:6;12012:9;12008:22;11976:64;:::i;:::-;11966:74;;11922:128;11706:351;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "632800",
"executionCost": "664",
"totalCost": "633464"
},
"external": {
"getAgreedOnHeader(address[],uint256,uint256)": "infinite",
"getHeaderFromOracle(address,uint256,uint256)": "infinite",
"getHeaderFromThreshold(address[],uint256,uint256,uint256)": "infinite",
"getHeadersFromOracles(address[],uint256,uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 100,
"end": 5035,
"name": "MSTORE",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "ISZERO",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPI",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "REVERT",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "POP",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 100,
"end": 5035,
"name": "CODECOPY",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 100,
"end": 5035,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220adf3938367e12aaf1153aa4152fcc50f0eb69564932dd70e1e74b27406c520bb64736f6c63430008110033",
".code": [
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 100,
"end": 5035,
"name": "MSTORE",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "ISZERO",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPI",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "REVERT",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "POP",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 100,
"end": 5035,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "LT",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPI",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 100,
"end": 5035,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 100,
"end": 5035,
"name": "SHR",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "7EF79F8C"
},
{
"begin": 100,
"end": 5035,
"name": "EQ",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPI",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "84DD0D12"
},
{
"begin": 100,
"end": 5035,
"name": "EQ",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPI",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "B31825BF"
},
{
"begin": 100,
"end": 5035,
"name": "EQ",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPI",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "D56154AB"
},
{
"begin": 100,
"end": 5035,
"name": "EQ",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPI",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 100,
"end": 5035,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 100,
"end": 5035,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 5035,
"name": "REVERT",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 4039,
"end": 5033,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 4039,
"end": 5033,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 4039,
"end": 5033,
"name": "DUP1",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "SUB",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "DUP2",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "ADD",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "SWAP1",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 4039,
"end": 5033,
"name": "SWAP2",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "SWAP1",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 4039,
"end": 5033,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 4039,
"end": 5033,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 4039,
"end": 5033,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 4039,
"end": 5033,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 4039,
"end": 5033,
"name": "MLOAD",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 4039,
"end": 5033,
"name": "SWAP2",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "SWAP1",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 4039,
"end": 5033,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 4039,
"end": 5033,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 4039,
"end": 5033,
"name": "MLOAD",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "DUP1",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "SWAP2",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "SUB",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "SWAP1",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "RETURN",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 2454,
"end": 3344,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 2454,
"end": 3344,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 2454,
"end": 3344,
"name": "DUP1",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "SUB",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "DUP2",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "ADD",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "SWAP1",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 2454,
"end": 3344,
"name": "SWAP2",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "SWAP1",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 2454,
"end": 3344,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 2454,
"end": 3344,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 2454,
"end": 3344,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 2454,
"end": 3344,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 2454,
"end": 3344,
"name": "MLOAD",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 2454,
"end": 3344,
"name": "SWAP2",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "SWAP1",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 2454,
"end": 3344,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "tag",
"source": 0,
"value": "17"
},
{
"begin": 2454,
"end": 3344,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 2454,
"end": 3344,
"name": "MLOAD",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "DUP1",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "SWAP2",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "SUB",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "SWAP1",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "RETURN",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 773,
"end": 1050,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 773,
"end": 1050,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 773,
"end": 1050,
"name": "DUP1",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "SUB",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "DUP2",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "ADD",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "SWAP1",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "PUSH [tag]",
"source": 0,
"value": "19"
},
{
"begin": 773,
"end": 1050,
"name": "SWAP2",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "SWAP1",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 773,
"end": 1050,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "tag",
"source": 0,
"value": "19"
},
{
"begin": 773,
"end": 1050,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 773,
"end": 1050,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 773,
"end": 1050,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 773,
"end": 1050,
"name": "MLOAD",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "PUSH [tag]",
"source": 0,
"value": "22"
},
{
"begin": 773,
"end": 1050,
"name": "SWAP2",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "SWAP1",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 773,
"end": 1050,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "tag",
"source": 0,
"value": "22"
},
{
"begin": 773,
"end": 1050,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 773,
"end": 1050,
"name": "MLOAD",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "DUP1",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "SWAP2",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "SUB",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "SWAP1",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "RETURN",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 1624,
"end": 1977,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "PUSH [tag]",
"source": 0,
"value": "23"
},
{
"begin": 1624,
"end": 1977,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 1624,
"end": 1977,
"name": "DUP1",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "SUB",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "DUP2",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "ADD",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "SWAP1",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "PUSH [tag]",
"source": 0,
"value": "24"
},
{
"begin": 1624,
"end": 1977,
"name": "SWAP2",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "SWAP1",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 1624,
"end": 1977,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "tag",
"source": 0,
"value": "24"
},
{
"begin": 1624,
"end": 1977,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "PUSH [tag]",
"source": 0,
"value": "25"
},
{
"begin": 1624,
"end": 1977,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "tag",
"source": 0,
"value": "23"
},
{
"begin": 1624,
"end": 1977,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1624,
"end": 1977,
"name": "MLOAD",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 1624,
"end": 1977,
"name": "SWAP2",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "SWAP1",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 1624,
"end": 1977,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 1624,
"end": 1977,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 1624,
"end": 1977,
"name": "MLOAD",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "DUP1",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "SWAP2",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "SUB",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "SWAP1",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "RETURN",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 4039,
"end": 5033,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4213,
"end": 4232,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4244,
"end": 4273,
"name": "DUP1",
"source": 0
},
{
"begin": 4276,
"end": 4335,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 4298,
"end": 4312,
"name": "DUP7",
"source": 0
},
{
"begin": 4314,
"end": 4321,
"name": "DUP7",
"source": 0
},
{
"begin": 4323,
"end": 4334,
"name": "DUP7",
"source": 0
},
{
"begin": 4276,
"end": 4297,
"name": "PUSH [tag]",
"source": 0,
"value": "25"
},
{
"begin": 4276,
"end": 4335,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4276,
"end": 4335,
"name": "tag",
"source": 0,
"value": "29"
},
{
"begin": 4276,
"end": 4335,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4244,
"end": 4335,
"name": "SWAP1",
"source": 0
},
{
"begin": 4244,
"end": 4335,
"name": "POP",
"source": 0
},
{
"begin": 4350,
"end": 4359,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4345,
"end": 4448,
"name": "tag",
"source": 0,
"value": "30"
},
{
"begin": 4345,
"end": 4448,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4369,
"end": 4381,
"name": "DUP2",
"source": 0
},
{
"begin": 4369,
"end": 4388,
"name": "MLOAD",
"source": 0
},
{
"begin": 4365,
"end": 4366,
"name": "DUP2",
"source": 0
},
{
"begin": 4365,
"end": 4388,
"name": "LT",
"source": 0
},
{
"begin": 4345,
"end": 4448,
"name": "ISZERO",
"source": 0
},
{
"begin": 4345,
"end": 4448,
"name": "PUSH [tag]",
"source": 0,
"value": "31"
},
{
"begin": 4345,
"end": 4448,
"name": "JUMPI",
"source": 0
},
{
"begin": 4436,
"end": 4437,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 4409,
"end": 4415,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4409,
"end": 4432,
"name": "DUP1",
"source": 0
},
{
"begin": 4416,
"end": 4428,
"name": "DUP5",
"source": 0
},
{
"begin": 4429,
"end": 4430,
"name": "DUP5",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "DUP2",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "MLOAD",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "DUP2",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "LT",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 4416,
"end": 4431,
"name": "JUMPI",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 4416,
"end": 4431,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 4416,
"end": 4431,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 4416,
"end": 4431,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 4416,
"end": 4431,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4416,
"end": 4431,
"name": "MUL",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4416,
"end": 4431,
"name": "ADD",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "ADD",
"source": 0
},
{
"begin": 4416,
"end": 4431,
"name": "MLOAD",
"source": 0
},
{
"begin": 4409,
"end": 4432,
"name": "DUP2",
"source": 0
},
{
"begin": 4409,
"end": 4432,
"name": "MSTORE",
"source": 0
},
{
"begin": 4409,
"end": 4432,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4409,
"end": 4432,
"name": "ADD",
"source": 0
},
{
"begin": 4409,
"end": 4432,
"name": "SWAP1",
"source": 0
},
{
"begin": 4409,
"end": 4432,
"name": "DUP2",
"source": 0
},
{
"begin": 4409,
"end": 4432,
"name": "MSTORE",
"source": 0
},
{
"begin": 4409,
"end": 4432,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4409,
"end": 4432,
"name": "ADD",
"source": 0
},
{
"begin": 4409,
"end": 4432,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4409,
"end": 4432,
"name": "KECCAK256",
"source": 0
},
{
"begin": 4409,
"end": 4432,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4409,
"end": 4437,
"name": "DUP3",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "DUP3",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "SLOAD",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "PUSH [tag]",
"source": 0,
"value": "36"
},
{
"begin": 4409,
"end": 4437,
"name": "SWAP2",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "SWAP1",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "PUSH [tag]",
"source": 0,
"value": "37"
},
{
"begin": 4409,
"end": 4437,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "tag",
"source": 0,
"value": "36"
},
{
"begin": 4409,
"end": 4437,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "SWAP3",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "POP",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "POP",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "DUP2",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "SWAP1",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "SSTORE",
"source": 0
},
{
"begin": 4409,
"end": 4437,
"name": "POP",
"source": 0
},
{
"begin": 4390,
"end": 4393,
"name": "DUP1",
"source": 0
},
{
"begin": 4390,
"end": 4393,
"name": "DUP1",
"source": 0
},
{
"begin": 4390,
"end": 4393,
"name": "PUSH [tag]",
"source": 0,
"value": "38"
},
{
"begin": 4390,
"end": 4393,
"name": "SWAP1",
"source": 0
},
{
"begin": 4390,
"end": 4393,
"name": "PUSH [tag]",
"source": 0,
"value": "39"
},
{
"begin": 4390,
"end": 4393,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4390,
"end": 4393,
"name": "tag",
"source": 0,
"value": "38"
},
{
"begin": 4390,
"end": 4393,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4390,
"end": 4393,
"name": "SWAP2",
"source": 0
},
{
"begin": 4390,
"end": 4393,
"name": "POP",
"source": 0
},
{
"begin": 4390,
"end": 4393,
"name": "POP",
"source": 0
},
{
"begin": 4345,
"end": 4448,
"name": "PUSH [tag]",
"source": 0,
"value": "30"
},
{
"begin": 4345,
"end": 4448,
"name": "JUMP",
"source": 0
},
{
"begin": 4345,
"end": 4448,
"name": "tag",
"source": 0,
"value": "31"
},
{
"begin": 4345,
"end": 4448,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4345,
"end": 4448,
"name": "POP",
"source": 0
},
{
"begin": 4457,
"end": 4477,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4492,
"end": 4501,
"name": "DUP1",
"source": 0
},
{
"begin": 4504,
"end": 4505,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4492,
"end": 4505,
"name": "SWAP1",
"source": 0
},
{
"begin": 4492,
"end": 4505,
"name": "POP",
"source": 0
},
{
"begin": 4487,
"end": 4810,
"name": "tag",
"source": 0,
"value": "40"
},
{
"begin": 4487,
"end": 4810,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4511,
"end": 4523,
"name": "DUP3",
"source": 0
},
{
"begin": 4511,
"end": 4530,
"name": "MLOAD",
"source": 0
},
{
"begin": 4507,
"end": 4508,
"name": "DUP2",
"source": 0
},
{
"begin": 4507,
"end": 4530,
"name": "LT",
"source": 0
},
{
"begin": 4487,
"end": 4810,
"name": "ISZERO",
"source": 0
},
{
"begin": 4487,
"end": 4810,
"name": "PUSH [tag]",
"source": 0,
"value": "41"
},
{
"begin": 4487,
"end": 4810,
"name": "JUMPI",
"source": 0
},
{
"begin": 4551,
"end": 4572,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4575,
"end": 4587,
"name": "DUP4",
"source": 0
},
{
"begin": 4588,
"end": 4589,
"name": "DUP3",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "DUP2",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "MLOAD",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "DUP2",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "LT",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "PUSH [tag]",
"source": 0,
"value": "43"
},
{
"begin": 4575,
"end": 4590,
"name": "JUMPI",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "PUSH [tag]",
"source": 0,
"value": "44"
},
{
"begin": 4575,
"end": 4590,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 4575,
"end": 4590,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "tag",
"source": 0,
"value": "44"
},
{
"begin": 4575,
"end": 4590,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "tag",
"source": 0,
"value": "43"
},
{
"begin": 4575,
"end": 4590,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4575,
"end": 4590,
"name": "MUL",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4575,
"end": 4590,
"name": "ADD",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "ADD",
"source": 0
},
{
"begin": 4575,
"end": 4590,
"name": "MLOAD",
"source": 0
},
{
"begin": 4551,
"end": 4590,
"name": "SWAP1",
"source": 0
},
{
"begin": 4551,
"end": 4590,
"name": "POP",
"source": 0
},
{
"begin": 4604,
"end": 4624,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4627,
"end": 4633,
"name": "DUP1",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4634,
"end": 4647,
"name": "DUP4",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "DUP2",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "MSTORE",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4627,
"end": 4648,
"name": "ADD",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "SWAP1",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "DUP2",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "MSTORE",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4627,
"end": 4648,
"name": "ADD",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4627,
"end": 4648,
"name": "KECCAK256",
"source": 0
},
{
"begin": 4627,
"end": 4648,
"name": "SLOAD",
"source": 0
},
{
"begin": 4604,
"end": 4648,
"name": "SWAP1",
"source": 0
},
{
"begin": 4604,
"end": 4648,
"name": "POP",
"source": 0
},
{
"begin": 4681,
"end": 4693,
"name": "DUP4",
"source": 0
},
{
"begin": 4666,
"end": 4678,
"name": "DUP2",
"source": 0
},
{
"begin": 4666,
"end": 4693,
"name": "GT",
"source": 0
},
{
"begin": 4662,
"end": 4800,
"name": "ISZERO",
"source": 0
},
{
"begin": 4662,
"end": 4800,
"name": "PUSH [tag]",
"source": 0,
"value": "45"
},
{
"begin": 4662,
"end": 4800,
"name": "JUMPI",
"source": 0
},
{
"begin": 4728,
"end": 4740,
"name": "DUP1",
"source": 0
},
{
"begin": 4713,
"end": 4740,
"name": "SWAP4",
"source": 0
},
{
"begin": 4713,
"end": 4740,
"name": "POP",
"source": 0
},
{
"begin": 4772,
"end": 4785,
"name": "DUP2",
"source": 0
},
{
"begin": 4758,
"end": 4785,
"name": "SWAP6",
"source": 0
},
{
"begin": 4758,
"end": 4785,
"name": "POP",
"source": 0
},
{
"begin": 4662,
"end": 4800,
"name": "tag",
"source": 0,
"value": "45"
},
{
"begin": 4662,
"end": 4800,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4537,
"end": 4810,
"name": "POP",
"source": 0
},
{
"begin": 4537,
"end": 4810,
"name": "POP",
"source": 0
},
{
"begin": 4532,
"end": 4535,
"name": "DUP1",
"source": 0
},
{
"begin": 4532,
"end": 4535,
"name": "DUP1",
"source": 0
},
{
"begin": 4532,
"end": 4535,
"name": "PUSH [tag]",
"source": 0,
"value": "46"
},
{
"begin": 4532,
"end": 4535,
"name": "SWAP1",
"source": 0
},
{
"begin": 4532,
"end": 4535,
"name": "PUSH [tag]",
"source": 0,
"value": "39"
},
{
"begin": 4532,
"end": 4535,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4532,
"end": 4535,
"name": "tag",
"source": 0,
"value": "46"
},
{
"begin": 4532,
"end": 4535,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4532,
"end": 4535,
"name": "SWAP2",
"source": 0
},
{
"begin": 4532,
"end": 4535,
"name": "POP",
"source": 0
},
{
"begin": 4532,
"end": 4535,
"name": "POP",
"source": 0
},
{
"begin": 4487,
"end": 4810,
"name": "PUSH [tag]",
"source": 0,
"value": "40"
},
{
"begin": 4487,
"end": 4810,
"name": "JUMP",
"source": 0
},
{
"begin": 4487,
"end": 4810,
"name": "tag",
"source": 0,
"value": "41"
},
{
"begin": 4487,
"end": 4810,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4487,
"end": 4810,
"name": "POP",
"source": 0
},
{
"begin": 4824,
"end": 4833,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4819,
"end": 4923,
"name": "tag",
"source": 0,
"value": "47"
},
{
"begin": 4819,
"end": 4923,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4843,
"end": 4855,
"name": "DUP3",
"source": 0
},
{
"begin": 4843,
"end": 4862,
"name": "MLOAD",
"source": 0
},
{
"begin": 4839,
"end": 4840,
"name": "DUP2",
"source": 0
},
{
"begin": 4839,
"end": 4862,
"name": "LT",
"source": 0
},
{
"begin": 4819,
"end": 4923,
"name": "ISZERO",
"source": 0
},
{
"begin": 4819,
"end": 4923,
"name": "PUSH [tag]",
"source": 0,
"value": "48"
},
{
"begin": 4819,
"end": 4923,
"name": "JUMPI",
"source": 0
},
{
"begin": 4890,
"end": 4896,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4890,
"end": 4912,
"name": "DUP1",
"source": 0
},
{
"begin": 4897,
"end": 4908,
"name": "DUP6",
"source": 0
},
{
"begin": 4909,
"end": 4910,
"name": "DUP4",
"source": 0
},
{
"begin": 4897,
"end": 4911,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4897,
"end": 4911,
"name": "DUP2",
"source": 0
},
{
"begin": 4897,
"end": 4911,
"name": "LT",
"source": 0
},
{
"begin": 4897,
"end": 4911,
"name": "PUSH [tag]",
"source": 0,
"value": "50"
},
{
"begin": 4897,
"end": 4911,
"name": "JUMPI",
"source": 0
},
{
"begin": 4897,
"end": 4911,
"name": "PUSH [tag]",
"source": 0,
"value": "51"
},
{
"begin": 4897,
"end": 4911,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 4897,
"end": 4911,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4897,
"end": 4911,
"name": "tag",
"source": 0,
"value": "51"
},
{
"begin": 4897,
"end": 4911,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4897,
"end": 4911,
"name": "tag",
"source": 0,
"value": "50"
},
{
"begin": 4897,
"end": 4911,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4897,
"end": 4911,
"name": "BYTE",
"source": 0
},
{
"begin": 4897,
"end": 4911,
"name": "PUSH",
"source": 0,
"value": "F8"
},
{
"begin": 4897,
"end": 4911,
"name": "SHL",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 4890,
"end": 4912,
"name": "NOT",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "AND",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "DUP2",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "MSTORE",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4890,
"end": 4912,
"name": "ADD",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "SWAP1",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "DUP2",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "MSTORE",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 4890,
"end": 4912,
"name": "ADD",
"source": 0
},
{
"begin": 4890,
"end": 4912,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4890,
"end": 4912,
"name": "KECCAK256",
"source": 0
},
{
"begin": 4883,
"end": 4912,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 4883,
"end": 4912,
"name": "SWAP1",
"source": 0
},
{
"begin": 4883,
"end": 4912,
"name": "SSTORE",
"source": 0
},
{
"begin": 4864,
"end": 4867,
"name": "DUP1",
"source": 0
},
{
"begin": 4864,
"end": 4867,
"name": "DUP1",
"source": 0
},
{
"begin": 4864,
"end": 4867,
"name": "PUSH [tag]",
"source": 0,
"value": "52"
},
{
"begin": 4864,
"end": 4867,
"name": "SWAP1",
"source": 0
},
{
"begin": 4864,
"end": 4867,
"name": "PUSH [tag]",
"source": 0,
"value": "39"
},
{
"begin": 4864,
"end": 4867,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4864,
"end": 4867,
"name": "tag",
"source": 0,
"value": "52"
},
{
"begin": 4864,
"end": 4867,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4864,
"end": 4867,
"name": "SWAP2",
"source": 0
},
{
"begin": 4864,
"end": 4867,
"name": "POP",
"source": 0
},
{
"begin": 4864,
"end": 4867,
"name": "POP",
"source": 0
},
{
"begin": 4819,
"end": 4923,
"name": "PUSH [tag]",
"source": 0,
"value": "47"
},
{
"begin": 4819,
"end": 4923,
"name": "JUMP",
"source": 0
},
{
"begin": 4819,
"end": 4923,
"name": "tag",
"source": 0,
"value": "48"
},
{
"begin": 4819,
"end": 4923,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4819,
"end": 4923,
"name": "POP",
"source": 0
},
{
"begin": 4951,
"end": 4960,
"name": "DUP4",
"source": 0
},
{
"begin": 4936,
"end": 4948,
"name": "DUP2",
"source": 0
},
{
"begin": 4936,
"end": 4960,
"name": "LT",
"source": 0
},
{
"begin": 4932,
"end": 5026,
"name": "ISZERO",
"source": 0
},
{
"begin": 4932,
"end": 5026,
"name": "PUSH [tag]",
"source": 0,
"value": "53"
},
{
"begin": 4932,
"end": 5026,
"name": "JUMPI",
"source": 0
},
{
"begin": 4993,
"end": 4997,
"name": "ADDRESS",
"source": 0
},
{
"begin": 5000,
"end": 5012,
"name": "DUP2",
"source": 0
},
{
"begin": 5014,
"end": 5025,
"name": "DUP5",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 4969,
"end": 5026,
"name": "MLOAD",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "PUSH",
"source": 0,
"value": "22BCB23B00000000000000000000000000000000000000000000000000000000"
},
{
"begin": 4969,
"end": 5026,
"name": "DUP2",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "MSTORE",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 4969,
"end": 5026,
"name": "ADD",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "PUSH [tag]",
"source": 0,
"value": "54"
},
{
"begin": 4969,
"end": 5026,
"name": "SWAP4",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "SWAP3",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "SWAP2",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "SWAP1",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "PUSH [tag]",
"source": 0,
"value": "55"
},
{
"begin": 4969,
"end": 5026,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "tag",
"source": 0,
"value": "54"
},
{
"begin": 4969,
"end": 5026,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 4969,
"end": 5026,
"name": "MLOAD",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "DUP1",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "SWAP2",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "SUB",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "SWAP1",
"source": 0
},
{
"begin": 4969,
"end": 5026,
"name": "REVERT",
"source": 0
},
{
"begin": 4932,
"end": 5026,
"name": "tag",
"source": 0,
"value": "53"
},
{
"begin": 4932,
"end": 5026,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 4234,
"end": 5033,
"name": "POP",
"source": 0
},
{
"begin": 4234,
"end": 5033,
"name": "POP",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "SWAP5",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "SWAP4",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "POP",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "POP",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "POP",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"name": "POP",
"source": 0
},
{
"begin": 4039,
"end": 5033,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 2454,
"end": 3344,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2601,
"end": 2620,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2632,
"end": 2661,
"name": "DUP1",
"source": 0
},
{
"begin": 2664,
"end": 2723,
"name": "PUSH [tag]",
"source": 0,
"value": "57"
},
{
"begin": 2686,
"end": 2700,
"name": "DUP6",
"source": 0
},
{
"begin": 2702,
"end": 2709,
"name": "DUP6",
"source": 0
},
{
"begin": 2711,
"end": 2722,
"name": "DUP6",
"source": 0
},
{
"begin": 2664,
"end": 2685,
"name": "PUSH [tag]",
"source": 0,
"value": "25"
},
{
"begin": 2664,
"end": 2723,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 2664,
"end": 2723,
"name": "tag",
"source": 0,
"value": "57"
},
{
"begin": 2664,
"end": 2723,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2632,
"end": 2723,
"name": "SWAP1",
"source": 0
},
{
"begin": 2632,
"end": 2723,
"name": "POP",
"source": 0
},
{
"begin": 2733,
"end": 2755,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2758,
"end": 2770,
"name": "DUP2",
"source": 0
},
{
"begin": 2771,
"end": 2772,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2758,
"end": 2773,
"name": "DUP2",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "MLOAD",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "DUP2",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "LT",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "PUSH [tag]",
"source": 0,
"value": "58"
},
{
"begin": 2758,
"end": 2773,
"name": "JUMPI",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 2758,
"end": 2773,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 2758,
"end": 2773,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "tag",
"source": 0,
"value": "59"
},
{
"begin": 2758,
"end": 2773,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "tag",
"source": 0,
"value": "58"
},
{
"begin": 2758,
"end": 2773,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2758,
"end": 2773,
"name": "MUL",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2758,
"end": 2773,
"name": "ADD",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "ADD",
"source": 0
},
{
"begin": 2758,
"end": 2773,
"name": "MLOAD",
"source": 0
},
{
"begin": 2733,
"end": 2773,
"name": "SWAP1",
"source": 0
},
{
"begin": 2733,
"end": 2773,
"name": "POP",
"source": 0
},
{
"begin": 2813,
"end": 2814,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2805,
"end": 2815,
"name": "DUP1",
"source": 0
},
{
"begin": 2805,
"end": 2815,
"name": "SHL",
"source": 0
},
{
"begin": 2787,
"end": 2801,
"name": "DUP2",
"source": 0
},
{
"begin": 2787,
"end": 2815,
"name": "SUB",
"source": 0
},
{
"begin": 2783,
"end": 2876,
"name": "PUSH [tag]",
"source": 0,
"value": "60"
},
{
"begin": 2783,
"end": 2876,
"name": "JUMPI",
"source": 0
},
{
"begin": 2851,
"end": 2855,
"name": "ADDRESS",
"source": 0
},
{
"begin": 2858,
"end": 2872,
"name": "DUP7",
"source": 0
},
{
"begin": 2873,
"end": 2874,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2858,
"end": 2875,
"name": "DUP2",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "MLOAD",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "DUP2",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "LT",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "PUSH [tag]",
"source": 0,
"value": "61"
},
{
"begin": 2858,
"end": 2875,
"name": "JUMPI",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "PUSH [tag]",
"source": 0,
"value": "62"
},
{
"begin": 2858,
"end": 2875,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 2858,
"end": 2875,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "tag",
"source": 0,
"value": "62"
},
{
"begin": 2858,
"end": 2875,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "tag",
"source": 0,
"value": "61"
},
{
"begin": 2858,
"end": 2875,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2858,
"end": 2875,
"name": "MUL",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2858,
"end": 2875,
"name": "ADD",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "ADD",
"source": 0
},
{
"begin": 2858,
"end": 2875,
"name": "MLOAD",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 2824,
"end": 2876,
"name": "MLOAD",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "PUSH",
"source": 0,
"value": "2A0C203900000000000000000000000000000000000000000000000000000000"
},
{
"begin": 2824,
"end": 2876,
"name": "DUP2",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "MSTORE",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 2824,
"end": 2876,
"name": "ADD",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "PUSH [tag]",
"source": 0,
"value": "63"
},
{
"begin": 2824,
"end": 2876,
"name": "SWAP3",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "SWAP2",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "SWAP1",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "PUSH [tag]",
"source": 0,
"value": "64"
},
{
"begin": 2824,
"end": 2876,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "tag",
"source": 0,
"value": "63"
},
{
"begin": 2824,
"end": 2876,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 2824,
"end": 2876,
"name": "MLOAD",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "DUP1",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "SWAP2",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "SUB",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "SWAP1",
"source": 0
},
{
"begin": 2824,
"end": 2876,
"name": "REVERT",
"source": 0
},
{
"begin": 2783,
"end": 2876,
"name": "tag",
"source": 0,
"value": "60"
},
{
"begin": 2783,
"end": 2876,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2886,
"end": 2907,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 2922,
"end": 2931,
"name": "DUP1",
"source": 0
},
{
"begin": 2934,
"end": 2935,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 2922,
"end": 2935,
"name": "SWAP1",
"source": 0
},
{
"begin": 2922,
"end": 2935,
"name": "POP",
"source": 0
},
{
"begin": 2917,
"end": 3301,
"name": "tag",
"source": 0,
"value": "65"
},
{
"begin": 2917,
"end": 3301,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2941,
"end": 2953,
"name": "DUP4",
"source": 0
},
{
"begin": 2941,
"end": 2960,
"name": "MLOAD",
"source": 0
},
{
"begin": 2937,
"end": 2938,
"name": "DUP2",
"source": 0
},
{
"begin": 2937,
"end": 2960,
"name": "LT",
"source": 0
},
{
"begin": 2917,
"end": 3301,
"name": "ISZERO",
"source": 0
},
{
"begin": 2917,
"end": 3301,
"name": "PUSH [tag]",
"source": 0,
"value": "66"
},
{
"begin": 2917,
"end": 3301,
"name": "JUMPI",
"source": 0
},
{
"begin": 2997,
"end": 3009,
"name": "DUP4",
"source": 0
},
{
"begin": 3010,
"end": 3011,
"name": "DUP2",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "DUP2",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "MLOAD",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "DUP2",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "LT",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "PUSH [tag]",
"source": 0,
"value": "68"
},
{
"begin": 2997,
"end": 3012,
"name": "JUMPI",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "PUSH [tag]",
"source": 0,
"value": "69"
},
{
"begin": 2997,
"end": 3012,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 2997,
"end": 3012,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "tag",
"source": 0,
"value": "69"
},
{
"begin": 2997,
"end": 3012,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "tag",
"source": 0,
"value": "68"
},
{
"begin": 2997,
"end": 3012,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2997,
"end": 3012,
"name": "MUL",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 2997,
"end": 3012,
"name": "ADD",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "ADD",
"source": 0
},
{
"begin": 2997,
"end": 3012,
"name": "MLOAD",
"source": 0
},
{
"begin": 2981,
"end": 3012,
"name": "SWAP2",
"source": 0
},
{
"begin": 2981,
"end": 3012,
"name": "POP",
"source": 0
},
{
"begin": 3055,
"end": 3056,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 3047,
"end": 3057,
"name": "DUP1",
"source": 0
},
{
"begin": 3047,
"end": 3057,
"name": "SHL",
"source": 0
},
{
"begin": 3030,
"end": 3043,
"name": "DUP3",
"source": 0
},
{
"begin": 3030,
"end": 3057,
"name": "SUB",
"source": 0
},
{
"begin": 3026,
"end": 3118,
"name": "PUSH [tag]",
"source": 0,
"value": "70"
},
{
"begin": 3026,
"end": 3118,
"name": "JUMPI",
"source": 0
},
{
"begin": 3093,
"end": 3097,
"name": "ADDRESS",
"source": 0
},
{
"begin": 3100,
"end": 3114,
"name": "DUP9",
"source": 0
},
{
"begin": 3115,
"end": 3116,
"name": "DUP3",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "DUP2",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "MLOAD",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "DUP2",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "LT",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "PUSH [tag]",
"source": 0,
"value": "71"
},
{
"begin": 3100,
"end": 3117,
"name": "JUMPI",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "PUSH [tag]",
"source": 0,
"value": "72"
},
{
"begin": 3100,
"end": 3117,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 3100,
"end": 3117,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "tag",
"source": 0,
"value": "72"
},
{
"begin": 3100,
"end": 3117,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "tag",
"source": 0,
"value": "71"
},
{
"begin": 3100,
"end": 3117,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 3100,
"end": 3117,
"name": "MUL",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 3100,
"end": 3117,
"name": "ADD",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "ADD",
"source": 0
},
{
"begin": 3100,
"end": 3117,
"name": "MLOAD",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 3066,
"end": 3118,
"name": "MLOAD",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "PUSH",
"source": 0,
"value": "2A0C203900000000000000000000000000000000000000000000000000000000"
},
{
"begin": 3066,
"end": 3118,
"name": "DUP2",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "MSTORE",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 3066,
"end": 3118,
"name": "ADD",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "PUSH [tag]",
"source": 0,
"value": "73"
},
{
"begin": 3066,
"end": 3118,
"name": "SWAP3",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "SWAP2",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "SWAP1",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "PUSH [tag]",
"source": 0,
"value": "64"
},
{
"begin": 3066,
"end": 3118,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "tag",
"source": 0,
"value": "73"
},
{
"begin": 3066,
"end": 3118,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 3066,
"end": 3118,
"name": "MLOAD",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "DUP1",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "SWAP2",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "SUB",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "SWAP1",
"source": 0
},
{
"begin": 3066,
"end": 3118,
"name": "REVERT",
"source": 0
},
{
"begin": 3026,
"end": 3118,
"name": "tag",
"source": 0,
"value": "70"
},
{
"begin": 3026,
"end": 3118,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3153,
"end": 3167,
"name": "DUP3",
"source": 0
},
{
"begin": 3136,
"end": 3149,
"name": "DUP3",
"source": 0
},
{
"begin": 3136,
"end": 3167,
"name": "EQ",
"source": 0
},
{
"begin": 3132,
"end": 3246,
"name": "PUSH [tag]",
"source": 0,
"value": "74"
},
{
"begin": 3132,
"end": 3246,
"name": "JUMPI",
"source": 0
},
{
"begin": 3200,
"end": 3204,
"name": "ADDRESS",
"source": 0
},
{
"begin": 3207,
"end": 3221,
"name": "DUP9",
"source": 0
},
{
"begin": 3224,
"end": 3225,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 3222,
"end": 3223,
"name": "DUP4",
"source": 0
},
{
"begin": 3222,
"end": 3225,
"name": "PUSH [tag]",
"source": 0,
"value": "75"
},
{
"begin": 3222,
"end": 3225,
"name": "SWAP2",
"source": 0
},
{
"begin": 3222,
"end": 3225,
"name": "SWAP1",
"source": 0
},
{
"begin": 3222,
"end": 3225,
"name": "PUSH [tag]",
"source": 0,
"value": "76"
},
{
"begin": 3222,
"end": 3225,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 3222,
"end": 3225,
"name": "tag",
"source": 0,
"value": "75"
},
{
"begin": 3222,
"end": 3225,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "DUP2",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "MLOAD",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "DUP2",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "LT",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "PUSH [tag]",
"source": 0,
"value": "77"
},
{
"begin": 3207,
"end": 3226,
"name": "JUMPI",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "PUSH [tag]",
"source": 0,
"value": "78"
},
{
"begin": 3207,
"end": 3226,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 3207,
"end": 3226,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "tag",
"source": 0,
"value": "78"
},
{
"begin": 3207,
"end": 3226,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "tag",
"source": 0,
"value": "77"
},
{
"begin": 3207,
"end": 3226,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 3207,
"end": 3226,
"name": "MUL",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 3207,
"end": 3226,
"name": "ADD",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "ADD",
"source": 0
},
{
"begin": 3207,
"end": 3226,
"name": "MLOAD",
"source": 0
},
{
"begin": 3228,
"end": 3242,
"name": "DUP10",
"source": 0
},
{
"begin": 3243,
"end": 3244,
"name": "DUP4",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "DUP2",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "MLOAD",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "DUP2",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "LT",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "PUSH [tag]",
"source": 0,
"value": "79"
},
{
"begin": 3228,
"end": 3245,
"name": "JUMPI",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "PUSH [tag]",
"source": 0,
"value": "80"
},
{
"begin": 3228,
"end": 3245,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 3228,
"end": 3245,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "tag",
"source": 0,
"value": "80"
},
{
"begin": 3228,
"end": 3245,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "tag",
"source": 0,
"value": "79"
},
{
"begin": 3228,
"end": 3245,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 3228,
"end": 3245,
"name": "MUL",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 3228,
"end": 3245,
"name": "ADD",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "ADD",
"source": 0
},
{
"begin": 3228,
"end": 3245,
"name": "MLOAD",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 3176,
"end": 3246,
"name": "MLOAD",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "PUSH",
"source": 0,
"value": "DBED4B2700000000000000000000000000000000000000000000000000000000"
},
{
"begin": 3176,
"end": 3246,
"name": "DUP2",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "MSTORE",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 3176,
"end": 3246,
"name": "ADD",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "PUSH [tag]",
"source": 0,
"value": "81"
},
{
"begin": 3176,
"end": 3246,
"name": "SWAP4",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "SWAP3",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "SWAP2",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "SWAP1",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "PUSH [tag]",
"source": 0,
"value": "82"
},
{
"begin": 3176,
"end": 3246,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "tag",
"source": 0,
"value": "81"
},
{
"begin": 3176,
"end": 3246,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 3176,
"end": 3246,
"name": "MLOAD",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "DUP1",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "SWAP2",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "SUB",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "SWAP1",
"source": 0
},
{
"begin": 3176,
"end": 3246,
"name": "REVERT",
"source": 0
},
{
"begin": 3132,
"end": 3246,
"name": "tag",
"source": 0,
"value": "74"
},
{
"begin": 3132,
"end": 3246,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3277,
"end": 3290,
"name": "DUP2",
"source": 0
},
{
"begin": 3260,
"end": 3290,
"name": "SWAP3",
"source": 0
},
{
"begin": 3260,
"end": 3290,
"name": "POP",
"source": 0
},
{
"begin": 2962,
"end": 2965,
"name": "DUP1",
"source": 0
},
{
"begin": 2962,
"end": 2965,
"name": "DUP1",
"source": 0
},
{
"begin": 2962,
"end": 2965,
"name": "PUSH [tag]",
"source": 0,
"value": "83"
},
{
"begin": 2962,
"end": 2965,
"name": "SWAP1",
"source": 0
},
{
"begin": 2962,
"end": 2965,
"name": "PUSH [tag]",
"source": 0,
"value": "39"
},
{
"begin": 2962,
"end": 2965,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 2962,
"end": 2965,
"name": "tag",
"source": 0,
"value": "83"
},
{
"begin": 2962,
"end": 2965,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2962,
"end": 2965,
"name": "SWAP2",
"source": 0
},
{
"begin": 2962,
"end": 2965,
"name": "POP",
"source": 0
},
{
"begin": 2962,
"end": 2965,
"name": "POP",
"source": 0
},
{
"begin": 2917,
"end": 3301,
"name": "PUSH [tag]",
"source": 0,
"value": "65"
},
{
"begin": 2917,
"end": 3301,
"name": "JUMP",
"source": 0
},
{
"begin": 2917,
"end": 3301,
"name": "tag",
"source": 0,
"value": "66"
},
{
"begin": 2917,
"end": 3301,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 2917,
"end": 3301,
"name": "POP",
"source": 0
},
{
"begin": 3324,
"end": 3337,
"name": "DUP1",
"source": 0
},
{
"begin": 3310,
"end": 3337,
"name": "SWAP4",
"source": 0
},
{
"begin": 3310,
"end": 3337,
"name": "POP",
"source": 0
},
{
"begin": 2622,
"end": 3344,
"name": "POP",
"source": 0
},
{
"begin": 2622,
"end": 3344,
"name": "POP",
"source": 0
},
{
"begin": 2622,
"end": 3344,
"name": "POP",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "SWAP4",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "SWAP3",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "POP",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "POP",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"name": "POP",
"source": 0
},
{
"begin": 2454,
"end": 3344,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 773,
"end": 1050,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 912,
"end": 931,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 972,
"end": 985,
"name": "DUP4",
"source": 0
},
{
"begin": 957,
"end": 1006,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 957,
"end": 1006,
"name": "AND",
"source": 0
},
{
"begin": 957,
"end": 1006,
"name": "PUSH",
"source": 0,
"value": "B31825BF"
},
{
"begin": 1007,
"end": 1020,
"name": "DUP6",
"source": 0
},
{
"begin": 1022,
"end": 1029,
"name": "DUP6",
"source": 0
},
{
"begin": 1031,
"end": 1042,
"name": "DUP6",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 957,
"end": 1043,
"name": "MLOAD",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP5",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFF"
},
{
"begin": 957,
"end": 1043,
"name": "AND",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 957,
"end": 1043,
"name": "SHL",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP2",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "MSTORE",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 957,
"end": 1043,
"name": "ADD",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH [tag]",
"source": 0,
"value": "85"
},
{
"begin": 957,
"end": 1043,
"name": "SWAP4",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "SWAP3",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "SWAP2",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "SWAP1",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH [tag]",
"source": 0,
"value": "86"
},
{
"begin": 957,
"end": 1043,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "tag",
"source": 0,
"value": "85"
},
{
"begin": 957,
"end": 1043,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 957,
"end": 1043,
"name": "MLOAD",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP1",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP4",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "SUB",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP2",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP7",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "GAS",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "STATICCALL",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "ISZERO",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP1",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "ISZERO",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH [tag]",
"source": 0,
"value": "88"
},
{
"begin": 957,
"end": 1043,
"name": "JUMPI",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 957,
"end": 1043,
"name": "DUP1",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 957,
"end": 1043,
"name": "REVERT",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "tag",
"source": 0,
"value": "88"
},
{
"begin": 957,
"end": 1043,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "POP",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "POP",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "POP",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "POP",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 957,
"end": 1043,
"name": "MLOAD",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 957,
"end": 1043,
"name": "NOT",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 957,
"end": 1043,
"name": "DUP3",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "ADD",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "AND",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP3",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "ADD",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP1",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 957,
"end": 1043,
"name": "MSTORE",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "POP",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "DUP2",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "ADD",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "SWAP1",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH [tag]",
"source": 0,
"value": "89"
},
{
"begin": 957,
"end": 1043,
"name": "SWAP2",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "SWAP1",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "PUSH [tag]",
"source": 0,
"value": "90"
},
{
"begin": 957,
"end": 1043,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 957,
"end": 1043,
"name": "tag",
"source": 0,
"value": "89"
},
{
"begin": 957,
"end": 1043,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 943,
"end": 1043,
"name": "SWAP1",
"source": 0
},
{
"begin": 943,
"end": 1043,
"name": "POP",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "SWAP4",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "SWAP3",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "POP",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "POP",
"source": 0
},
{
"begin": 773,
"end": 1050,
"name": "POP",
"source": 0
},
{
"begin": 773,
"end": 1050,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "tag",
"source": 0,
"value": "25"
},
{
"begin": 1624,
"end": 1977,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1775,
"end": 1804,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 1821,
"end": 1830,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 1816,
"end": 1971,
"name": "tag",
"source": 0,
"value": "92"
},
{
"begin": 1816,
"end": 1971,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1840,
"end": 1854,
"name": "DUP5",
"source": 0
},
{
"begin": 1840,
"end": 1861,
"name": "MLOAD",
"source": 0
},
{
"begin": 1836,
"end": 1837,
"name": "DUP2",
"source": 0
},
{
"begin": 1836,
"end": 1861,
"name": "LT",
"source": 0
},
{
"begin": 1816,
"end": 1971,
"name": "ISZERO",
"source": 0
},
{
"begin": 1816,
"end": 1971,
"name": "PUSH [tag]",
"source": 0,
"value": "93"
},
{
"begin": 1816,
"end": 1971,
"name": "JUMPI",
"source": 0
},
{
"begin": 1900,
"end": 1960,
"name": "PUSH [tag]",
"source": 0,
"value": "95"
},
{
"begin": 1920,
"end": 1934,
"name": "DUP6",
"source": 0
},
{
"begin": 1935,
"end": 1936,
"name": "DUP3",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "DUP2",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "MLOAD",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "DUP2",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "LT",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "PUSH [tag]",
"source": 0,
"value": "96"
},
{
"begin": 1920,
"end": 1937,
"name": "JUMPI",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "PUSH [tag]",
"source": 0,
"value": "97"
},
{
"begin": 1920,
"end": 1937,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 1920,
"end": 1937,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "tag",
"source": 0,
"value": "97"
},
{
"begin": 1920,
"end": 1937,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "tag",
"source": 0,
"value": "96"
},
{
"begin": 1920,
"end": 1937,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1920,
"end": 1937,
"name": "MUL",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1920,
"end": 1937,
"name": "ADD",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "ADD",
"source": 0
},
{
"begin": 1920,
"end": 1937,
"name": "MLOAD",
"source": 0
},
{
"begin": 1939,
"end": 1946,
"name": "DUP6",
"source": 0
},
{
"begin": 1948,
"end": 1959,
"name": "DUP6",
"source": 0
},
{
"begin": 1900,
"end": 1919,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 1900,
"end": 1960,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1900,
"end": 1960,
"name": "tag",
"source": 0,
"value": "95"
},
{
"begin": 1900,
"end": 1960,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1882,
"end": 1894,
"name": "DUP3",
"source": 0
},
{
"begin": 1895,
"end": 1896,
"name": "DUP3",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "DUP2",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "MLOAD",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "DUP2",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "LT",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "PUSH [tag]",
"source": 0,
"value": "98"
},
{
"begin": 1882,
"end": 1897,
"name": "JUMPI",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "PUSH [tag]",
"source": 0,
"value": "99"
},
{
"begin": 1882,
"end": 1897,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 1882,
"end": 1897,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "tag",
"source": 0,
"value": "99"
},
{
"begin": 1882,
"end": 1897,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "tag",
"source": 0,
"value": "98"
},
{
"begin": 1882,
"end": 1897,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1882,
"end": 1897,
"name": "MUL",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 1882,
"end": 1897,
"name": "ADD",
"source": 0
},
{
"begin": 1882,
"end": 1897,
"name": "ADD",
"source": 0
},
{
"begin": 1882,
"end": 1960,
"name": "DUP2",
"source": 0
},
{
"begin": 1882,
"end": 1960,
"name": "DUP2",
"source": 0
},
{
"begin": 1882,
"end": 1960,
"name": "MSTORE",
"source": 0
},
{
"begin": 1882,
"end": 1960,
"name": "POP",
"source": 0
},
{
"begin": 1882,
"end": 1960,
"name": "POP",
"source": 0
},
{
"begin": 1863,
"end": 1866,
"name": "DUP1",
"source": 0
},
{
"begin": 1863,
"end": 1866,
"name": "DUP1",
"source": 0
},
{
"begin": 1863,
"end": 1866,
"name": "PUSH [tag]",
"source": 0,
"value": "100"
},
{
"begin": 1863,
"end": 1866,
"name": "SWAP1",
"source": 0
},
{
"begin": 1863,
"end": 1866,
"name": "PUSH [tag]",
"source": 0,
"value": "39"
},
{
"begin": 1863,
"end": 1866,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 1863,
"end": 1866,
"name": "tag",
"source": 0,
"value": "100"
},
{
"begin": 1863,
"end": 1866,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1863,
"end": 1866,
"name": "SWAP2",
"source": 0
},
{
"begin": 1863,
"end": 1866,
"name": "POP",
"source": 0
},
{
"begin": 1863,
"end": 1866,
"name": "POP",
"source": 0
},
{
"begin": 1816,
"end": 1971,
"name": "PUSH [tag]",
"source": 0,
"value": "92"
},
{
"begin": 1816,
"end": 1971,
"name": "JUMP",
"source": 0
},
{
"begin": 1816,
"end": 1971,
"name": "tag",
"source": 0,
"value": "93"
},
{
"begin": 1816,
"end": 1971,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 1816,
"end": 1971,
"name": "POP",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "SWAP4",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "SWAP3",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "POP",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "POP",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"name": "POP",
"source": 0
},
{
"begin": 1624,
"end": 1977,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 7,
"end": 82,
"name": "tag",
"source": 2,
"value": "101"
},
{
"begin": 7,
"end": 82,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 40,
"end": 46,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 73,
"end": 75,
"name": "PUSH",
"source": 2,
"value": "40"
},
{
"begin": 67,
"end": 76,
"name": "MLOAD",
"source": 2
},
{
"begin": 57,
"end": 76,
"name": "SWAP1",
"source": 2
},
{
"begin": 57,
"end": 76,
"name": "POP",
"source": 2
},
{
"begin": 7,
"end": 82,
"name": "SWAP1",
"source": 2
},
{
"begin": 7,
"end": 82,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 88,
"end": 205,
"name": "tag",
"source": 2,
"value": "102"
},
{
"begin": 88,
"end": 205,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 197,
"end": 198,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 194,
"end": 195,
"name": "DUP1",
"source": 2
},
{
"begin": 187,
"end": 199,
"name": "REVERT",
"source": 2
},
{
"begin": 211,
"end": 328,
"name": "tag",
"source": 2,
"value": "103"
},
{
"begin": 211,
"end": 328,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 320,
"end": 321,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 317,
"end": 318,
"name": "DUP1",
"source": 2
},
{
"begin": 310,
"end": 322,
"name": "REVERT",
"source": 2
},
{
"begin": 334,
"end": 451,
"name": "tag",
"source": 2,
"value": "104"
},
{
"begin": 334,
"end": 451,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 443,
"end": 444,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 440,
"end": 441,
"name": "DUP1",
"source": 2
},
{
"begin": 433,
"end": 445,
"name": "REVERT",
"source": 2
},
{
"begin": 457,
"end": 559,
"name": "tag",
"source": 2,
"value": "105"
},
{
"begin": 457,
"end": 559,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 498,
"end": 504,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 549,
"end": 551,
"name": "PUSH",
"source": 2,
"value": "1F"
},
{
"begin": 545,
"end": 552,
"name": "NOT",
"source": 2
},
{
"begin": 540,
"end": 542,
"name": "PUSH",
"source": 2,
"value": "1F"
},
{
"begin": 533,
"end": 538,
"name": "DUP4",
"source": 2
},
{
"begin": 529,
"end": 543,
"name": "ADD",
"source": 2
},
{
"begin": 525,
"end": 553,
"name": "AND",
"source": 2
},
{
"begin": 515,
"end": 553,
"name": "SWAP1",
"source": 2
},
{
"begin": 515,
"end": 553,
"name": "POP",
"source": 2
},
{
"begin": 457,
"end": 559,
"name": "SWAP2",
"source": 2
},
{
"begin": 457,
"end": 559,
"name": "SWAP1",
"source": 2
},
{
"begin": 457,
"end": 559,
"name": "POP",
"source": 2
},
{
"begin": 457,
"end": 559,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 565,
"end": 745,
"name": "tag",
"source": 2,
"value": "106"
},
{
"begin": 565,
"end": 745,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 613,
"end": 690,
"name": "PUSH",
"source": 2,
"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 610,
"end": 611,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 603,
"end": 691,
"name": "MSTORE",
"source": 2
},
{
"begin": 710,
"end": 714,
"name": "PUSH",
"source": 2,
"value": "41"
},
{
"begin": 707,
"end": 708,
"name": "PUSH",
"source": 2,
"value": "4"
},
{
"begin": 700,
"end": 715,
"name": "MSTORE",
"source": 2
},
{
"begin": 734,
"end": 738,
"name": "PUSH",
"source": 2,
"value": "24"
},
{
"begin": 731,
"end": 732,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 724,
"end": 739,
"name": "REVERT",
"source": 2
},
{
"begin": 751,
"end": 1032,
"name": "tag",
"source": 2,
"value": "107"
},
{
"begin": 751,
"end": 1032,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 834,
"end": 861,
"name": "PUSH [tag]",
"source": 2,
"value": "142"
},
{
"begin": 856,
"end": 860,
"name": "DUP3",
"source": 2
},
{
"begin": 834,
"end": 861,
"name": "PUSH [tag]",
"source": 2,
"value": "105"
},
{
"begin": 834,
"end": 861,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 834,
"end": 861,
"name": "tag",
"source": 2,
"value": "142"
},
{
"begin": 834,
"end": 861,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 826,
"end": 832,
"name": "DUP2",
"source": 2
},
{
"begin": 822,
"end": 862,
"name": "ADD",
"source": 2
},
{
"begin": 964,
"end": 970,
"name": "DUP2",
"source": 2
},
{
"begin": 952,
"end": 962,
"name": "DUP2",
"source": 2
},
{
"begin": 949,
"end": 971,
"name": "LT",
"source": 2
},
{
"begin": 928,
"end": 946,
"name": "PUSH",
"source": 2,
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 916,
"end": 926,
"name": "DUP3",
"source": 2
},
{
"begin": 913,
"end": 947,
"name": "GT",
"source": 2
},
{
"begin": 910,
"end": 972,
"name": "OR",
"source": 2
},
{
"begin": 907,
"end": 995,
"name": "ISZERO",
"source": 2
},
{
"begin": 907,
"end": 995,
"name": "PUSH [tag]",
"source": 2,
"value": "143"
},
{
"begin": 907,
"end": 995,
"name": "JUMPI",
"source": 2
},
{
"begin": 975,
"end": 993,
"name": "PUSH [tag]",
"source": 2,
"value": "144"
},
{
"begin": 975,
"end": 993,
"name": "PUSH [tag]",
"source": 2,
"value": "106"
},
{
"begin": 975,
"end": 993,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 975,
"end": 993,
"name": "tag",
"source": 2,
"value": "144"
},
{
"begin": 975,
"end": 993,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 907,
"end": 995,
"name": "tag",
"source": 2,
"value": "143"
},
{
"begin": 907,
"end": 995,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1015,
"end": 1025,
"name": "DUP1",
"source": 2
},
{
"begin": 1011,
"end": 1013,
"name": "PUSH",
"source": 2,
"value": "40"
},
{
"begin": 1004,
"end": 1026,
"name": "MSTORE",
"source": 2
},
{
"begin": 794,
"end": 1032,
"name": "POP",
"source": 2
},
{
"begin": 751,
"end": 1032,
"name": "POP",
"source": 2
},
{
"begin": 751,
"end": 1032,
"name": "POP",
"source": 2
},
{
"begin": 751,
"end": 1032,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1038,
"end": 1167,
"name": "tag",
"source": 2,
"value": "108"
},
{
"begin": 1038,
"end": 1167,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1072,
"end": 1078,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1099,
"end": 1119,
"name": "PUSH [tag]",
"source": 2,
"value": "146"
},
{
"begin": 1099,
"end": 1119,
"name": "PUSH [tag]",
"source": 2,
"value": "101"
},
{
"begin": 1099,
"end": 1119,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1099,
"end": 1119,
"name": "tag",
"source": 2,
"value": "146"
},
{
"begin": 1099,
"end": 1119,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1089,
"end": 1119,
"name": "SWAP1",
"source": 2
},
{
"begin": 1089,
"end": 1119,
"name": "POP",
"source": 2
},
{
"begin": 1128,
"end": 1161,
"name": "PUSH [tag]",
"source": 2,
"value": "147"
},
{
"begin": 1156,
"end": 1160,
"name": "DUP3",
"source": 2
},
{
"begin": 1148,
"end": 1154,
"name": "DUP3",
"source": 2
},
{
"begin": 1128,
"end": 1161,
"name": "PUSH [tag]",
"source": 2,
"value": "107"
},
{
"begin": 1128,
"end": 1161,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1128,
"end": 1161,
"name": "tag",
"source": 2,
"value": "147"
},
{
"begin": 1128,
"end": 1161,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1038,
"end": 1167,
"name": "SWAP2",
"source": 2
},
{
"begin": 1038,
"end": 1167,
"name": "SWAP1",
"source": 2
},
{
"begin": 1038,
"end": 1167,
"name": "POP",
"source": 2
},
{
"begin": 1038,
"end": 1167,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1173,
"end": 1484,
"name": "tag",
"source": 2,
"value": "109"
},
{
"begin": 1173,
"end": 1484,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1250,
"end": 1254,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1340,
"end": 1358,
"name": "PUSH",
"source": 2,
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 1332,
"end": 1338,
"name": "DUP3",
"source": 2
},
{
"begin": 1329,
"end": 1359,
"name": "GT",
"source": 2
},
{
"begin": 1326,
"end": 1382,
"name": "ISZERO",
"source": 2
},
{
"begin": 1326,
"end": 1382,
"name": "PUSH [tag]",
"source": 2,
"value": "149"
},
{
"begin": 1326,
"end": 1382,
"name": "JUMPI",
"source": 2
},
{
"begin": 1362,
"end": 1380,
"name": "PUSH [tag]",
"source": 2,
"value": "150"
},
{
"begin": 1362,
"end": 1380,
"name": "PUSH [tag]",
"source": 2,
"value": "106"
},
{
"begin": 1362,
"end": 1380,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1362,
"end": 1380,
"name": "tag",
"source": 2,
"value": "150"
},
{
"begin": 1362,
"end": 1380,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1326,
"end": 1382,
"name": "tag",
"source": 2,
"value": "149"
},
{
"begin": 1326,
"end": 1382,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1412,
"end": 1416,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 1404,
"end": 1410,
"name": "DUP3",
"source": 2
},
{
"begin": 1400,
"end": 1417,
"name": "MUL",
"source": 2
},
{
"begin": 1392,
"end": 1417,
"name": "SWAP1",
"source": 2
},
{
"begin": 1392,
"end": 1417,
"name": "POP",
"source": 2
},
{
"begin": 1472,
"end": 1476,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 1466,
"end": 1470,
"name": "DUP2",
"source": 2
},
{
"begin": 1462,
"end": 1477,
"name": "ADD",
"source": 2
},
{
"begin": 1454,
"end": 1477,
"name": "SWAP1",
"source": 2
},
{
"begin": 1454,
"end": 1477,
"name": "POP",
"source": 2
},
{
"begin": 1173,
"end": 1484,
"name": "SWAP2",
"source": 2
},
{
"begin": 1173,
"end": 1484,
"name": "SWAP1",
"source": 2
},
{
"begin": 1173,
"end": 1484,
"name": "POP",
"source": 2
},
{
"begin": 1173,
"end": 1484,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1490,
"end": 1607,
"name": "tag",
"source": 2,
"value": "110"
},
{
"begin": 1490,
"end": 1607,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1599,
"end": 1600,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1596,
"end": 1597,
"name": "DUP1",
"source": 2
},
{
"begin": 1589,
"end": 1601,
"name": "REVERT",
"source": 2
},
{
"begin": 1613,
"end": 1739,
"name": "tag",
"source": 2,
"value": "111"
},
{
"begin": 1613,
"end": 1739,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1650,
"end": 1657,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1690,
"end": 1732,
"name": "PUSH",
"source": 2,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1683,
"end": 1688,
"name": "DUP3",
"source": 2
},
{
"begin": 1679,
"end": 1733,
"name": "AND",
"source": 2
},
{
"begin": 1668,
"end": 1733,
"name": "SWAP1",
"source": 2
},
{
"begin": 1668,
"end": 1733,
"name": "POP",
"source": 2
},
{
"begin": 1613,
"end": 1739,
"name": "SWAP2",
"source": 2
},
{
"begin": 1613,
"end": 1739,
"name": "SWAP1",
"source": 2
},
{
"begin": 1613,
"end": 1739,
"name": "POP",
"source": 2
},
{
"begin": 1613,
"end": 1739,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1745,
"end": 1841,
"name": "tag",
"source": 2,
"value": "112"
},
{
"begin": 1745,
"end": 1841,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1782,
"end": 1789,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1811,
"end": 1835,
"name": "PUSH [tag]",
"source": 2,
"value": "154"
},
{
"begin": 1829,
"end": 1834,
"name": "DUP3",
"source": 2
},
{
"begin": 1811,
"end": 1835,
"name": "PUSH [tag]",
"source": 2,
"value": "111"
},
{
"begin": 1811,
"end": 1835,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1811,
"end": 1835,
"name": "tag",
"source": 2,
"value": "154"
},
{
"begin": 1811,
"end": 1835,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1800,
"end": 1835,
"name": "SWAP1",
"source": 2
},
{
"begin": 1800,
"end": 1835,
"name": "POP",
"source": 2
},
{
"begin": 1745,
"end": 1841,
"name": "SWAP2",
"source": 2
},
{
"begin": 1745,
"end": 1841,
"name": "SWAP1",
"source": 2
},
{
"begin": 1745,
"end": 1841,
"name": "POP",
"source": 2
},
{
"begin": 1745,
"end": 1841,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1847,
"end": 1969,
"name": "tag",
"source": 2,
"value": "113"
},
{
"begin": 1847,
"end": 1969,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1920,
"end": 1944,
"name": "PUSH [tag]",
"source": 2,
"value": "156"
},
{
"begin": 1938,
"end": 1943,
"name": "DUP2",
"source": 2
},
{
"begin": 1920,
"end": 1944,
"name": "PUSH [tag]",
"source": 2,
"value": "112"
},
{
"begin": 1920,
"end": 1944,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 1920,
"end": 1944,
"name": "tag",
"source": 2,
"value": "156"
},
{
"begin": 1920,
"end": 1944,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1913,
"end": 1918,
"name": "DUP2",
"source": 2
},
{
"begin": 1910,
"end": 1945,
"name": "EQ",
"source": 2
},
{
"begin": 1900,
"end": 1963,
"name": "PUSH [tag]",
"source": 2,
"value": "157"
},
{
"begin": 1900,
"end": 1963,
"name": "JUMPI",
"source": 2
},
{
"begin": 1959,
"end": 1960,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 1956,
"end": 1957,
"name": "DUP1",
"source": 2
},
{
"begin": 1949,
"end": 1961,
"name": "REVERT",
"source": 2
},
{
"begin": 1900,
"end": 1963,
"name": "tag",
"source": 2,
"value": "157"
},
{
"begin": 1900,
"end": 1963,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1847,
"end": 1969,
"name": "POP",
"source": 2
},
{
"begin": 1847,
"end": 1969,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 1975,
"end": 2114,
"name": "tag",
"source": 2,
"value": "114"
},
{
"begin": 1975,
"end": 2114,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2021,
"end": 2026,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 2059,
"end": 2065,
"name": "DUP2",
"source": 2
},
{
"begin": 2046,
"end": 2066,
"name": "CALLDATALOAD",
"source": 2
},
{
"begin": 2037,
"end": 2066,
"name": "SWAP1",
"source": 2
},
{
"begin": 2037,
"end": 2066,
"name": "POP",
"source": 2
},
{
"begin": 2075,
"end": 2108,
"name": "PUSH [tag]",
"source": 2,
"value": "159"
},
{
"begin": 2102,
"end": 2107,
"name": "DUP2",
"source": 2
},
{
"begin": 2075,
"end": 2108,
"name": "PUSH [tag]",
"source": 2,
"value": "113"
},
{
"begin": 2075,
"end": 2108,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 2075,
"end": 2108,
"name": "tag",
"source": 2,
"value": "159"
},
{
"begin": 2075,
"end": 2108,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 1975,
"end": 2114,
"name": "SWAP3",
"source": 2
},
{
"begin": 1975,
"end": 2114,
"name": "SWAP2",
"source": 2
},
{
"begin": 1975,
"end": 2114,
"name": "POP",
"source": 2
},
{
"begin": 1975,
"end": 2114,
"name": "POP",
"source": 2
},
{
"begin": 1975,
"end": 2114,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 2137,
"end": 2847,
"name": "tag",
"source": 2,
"value": "115"
},
{
"begin": 2137,
"end": 2847,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2233,
"end": 2238,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 2258,
"end": 2339,
"name": "PUSH [tag]",
"source": 2,
"value": "161"
},
{
"begin": 2274,
"end": 2338,
"name": "PUSH [tag]",
"source": 2,
"value": "162"
},
{
"begin": 2331,
"end": 2337,
"name": "DUP5",
"source": 2
},
{
"begin": 2274,
"end": 2338,
"name": "PUSH [tag]",
"source": 2,
"value": "109"
},
{
"begin": 2274,
"end": 2338,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 2274,
"end": 2338,
"name": "tag",
"source": 2,
"value": "162"
},
{
"begin": 2274,
"end": 2338,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2258,
"end": 2339,
"name": "PUSH [tag]",
"source": 2,
"value": "108"
},
{
"begin": 2258,
"end": 2339,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 2258,
"end": 2339,
"name": "tag",
"source": 2,
"value": "161"
},
{
"begin": 2258,
"end": 2339,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2249,
"end": 2339,
"name": "SWAP1",
"source": 2
},
{
"begin": 2249,
"end": 2339,
"name": "POP",
"source": 2
},
{
"begin": 2359,
"end": 2364,
"name": "DUP1",
"source": 2
},
{
"begin": 2388,
"end": 2394,
"name": "DUP4",
"source": 2
},
{
"begin": 2381,
"end": 2386,
"name": "DUP3",
"source": 2
},
{
"begin": 2374,
"end": 2395,
"name": "MSTORE",
"source": 2
},
{
"begin": 2422,
"end": 2426,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 2415,
"end": 2420,
"name": "DUP3",
"source": 2
},
{
"begin": 2411,
"end": 2427,
"name": "ADD",
"source": 2
},
{
"begin": 2404,
"end": 2427,
"name": "SWAP1",
"source": 2
},
{
"begin": 2404,
"end": 2427,
"name": "POP",
"source": 2
},
{
"begin": 2475,
"end": 2479,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 2467,
"end": 2473,
"name": "DUP5",
"source": 2
},
{
"begin": 2463,
"end": 2480,
"name": "MUL",
"source": 2
},
{
"begin": 2455,
"end": 2461,
"name": "DUP4",
"source": 2
},
{
"begin": 2451,
"end": 2481,
"name": "ADD",
"source": 2
},
{
"begin": 2504,
"end": 2507,
"name": "DUP6",
"source": 2
},
{
"begin": 2496,
"end": 2502,
"name": "DUP2",
"source": 2
},
{
"begin": 2493,
"end": 2508,
"name": "GT",
"source": 2
},
{
"begin": 2490,
"end": 2612,
"name": "ISZERO",
"source": 2
},
{
"begin": 2490,
"end": 2612,
"name": "PUSH [tag]",
"source": 2,
"value": "163"
},
{
"begin": 2490,
"end": 2612,
"name": "JUMPI",
"source": 2
},
{
"begin": 2523,
"end": 2602,
"name": "PUSH [tag]",
"source": 2,
"value": "164"
},
{
"begin": 2523,
"end": 2602,
"name": "PUSH [tag]",
"source": 2,
"value": "110"
},
{
"begin": 2523,
"end": 2602,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 2523,
"end": 2602,
"name": "tag",
"source": 2,
"value": "164"
},
{
"begin": 2523,
"end": 2602,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2490,
"end": 2612,
"name": "tag",
"source": 2,
"value": "163"
},
{
"begin": 2490,
"end": 2612,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2638,
"end": 2644,
"name": "DUP4",
"source": 2
},
{
"begin": 2621,
"end": 2841,
"name": "tag",
"source": 2,
"value": "165"
},
{
"begin": 2621,
"end": 2841,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2655,
"end": 2661,
"name": "DUP2",
"source": 2
},
{
"begin": 2650,
"end": 2653,
"name": "DUP2",
"source": 2
},
{
"begin": 2647,
"end": 2662,
"name": "LT",
"source": 2
},
{
"begin": 2621,
"end": 2841,
"name": "ISZERO",
"source": 2
},
{
"begin": 2621,
"end": 2841,
"name": "PUSH [tag]",
"source": 2,
"value": "167"
},
{
"begin": 2621,
"end": 2841,
"name": "JUMPI",
"source": 2
},
{
"begin": 2730,
"end": 2733,
"name": "DUP1",
"source": 2
},
{
"begin": 2759,
"end": 2796,
"name": "PUSH [tag]",
"source": 2,
"value": "168"
},
{
"begin": 2792,
"end": 2795,
"name": "DUP9",
"source": 2
},
{
"begin": 2780,
"end": 2790,
"name": "DUP3",
"source": 2
},
{
"begin": 2759,
"end": 2796,
"name": "PUSH [tag]",
"source": 2,
"value": "114"
},
{
"begin": 2759,
"end": 2796,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 2759,
"end": 2796,
"name": "tag",
"source": 2,
"value": "168"
},
{
"begin": 2759,
"end": 2796,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2754,
"end": 2757,
"name": "DUP5",
"source": 2
},
{
"begin": 2747,
"end": 2797,
"name": "MSTORE",
"source": 2
},
{
"begin": 2826,
"end": 2830,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 2821,
"end": 2824,
"name": "DUP5",
"source": 2
},
{
"begin": 2817,
"end": 2831,
"name": "ADD",
"source": 2
},
{
"begin": 2810,
"end": 2831,
"name": "SWAP4",
"source": 2
},
{
"begin": 2810,
"end": 2831,
"name": "POP",
"source": 2
},
{
"begin": 2697,
"end": 2841,
"name": "POP",
"source": 2
},
{
"begin": 2681,
"end": 2685,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 2676,
"end": 2679,
"name": "DUP2",
"source": 2
},
{
"begin": 2672,
"end": 2686,
"name": "ADD",
"source": 2
},
{
"begin": 2665,
"end": 2686,
"name": "SWAP1",
"source": 2
},
{
"begin": 2665,
"end": 2686,
"name": "POP",
"source": 2
},
{
"begin": 2621,
"end": 2841,
"name": "PUSH [tag]",
"source": 2,
"value": "165"
},
{
"begin": 2621,
"end": 2841,
"name": "JUMP",
"source": 2
},
{
"begin": 2621,
"end": 2841,
"name": "tag",
"source": 2,
"value": "167"
},
{
"begin": 2621,
"end": 2841,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2625,
"end": 2646,
"name": "POP",
"source": 2
},
{
"begin": 2239,
"end": 2847,
"name": "POP",
"source": 2
},
{
"begin": 2239,
"end": 2847,
"name": "POP",
"source": 2
},
{
"begin": 2137,
"end": 2847,
"name": "SWAP4",
"source": 2
},
{
"begin": 2137,
"end": 2847,
"name": "SWAP3",
"source": 2
},
{
"begin": 2137,
"end": 2847,
"name": "POP",
"source": 2
},
{
"begin": 2137,
"end": 2847,
"name": "POP",
"source": 2
},
{
"begin": 2137,
"end": 2847,
"name": "POP",
"source": 2
},
{
"begin": 2137,
"end": 2847,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 2870,
"end": 3240,
"name": "tag",
"source": 2,
"value": "116"
},
{
"begin": 2870,
"end": 3240,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2941,
"end": 2946,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 2990,
"end": 2993,
"name": "DUP3",
"source": 2
},
{
"begin": 2983,
"end": 2987,
"name": "PUSH",
"source": 2,
"value": "1F"
},
{
"begin": 2975,
"end": 2981,
"name": "DUP4",
"source": 2
},
{
"begin": 2971,
"end": 2988,
"name": "ADD",
"source": 2
},
{
"begin": 2967,
"end": 2994,
"name": "SLT",
"source": 2
},
{
"begin": 2957,
"end": 3079,
"name": "PUSH [tag]",
"source": 2,
"value": "170"
},
{
"begin": 2957,
"end": 3079,
"name": "JUMPI",
"source": 2
},
{
"begin": 2998,
"end": 3077,
"name": "PUSH [tag]",
"source": 2,
"value": "171"
},
{
"begin": 2998,
"end": 3077,
"name": "PUSH [tag]",
"source": 2,
"value": "104"
},
{
"begin": 2998,
"end": 3077,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 2998,
"end": 3077,
"name": "tag",
"source": 2,
"value": "171"
},
{
"begin": 2998,
"end": 3077,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 2957,
"end": 3079,
"name": "tag",
"source": 2,
"value": "170"
},
{
"begin": 2957,
"end": 3079,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3115,
"end": 3121,
"name": "DUP2",
"source": 2
},
{
"begin": 3102,
"end": 3122,
"name": "CALLDATALOAD",
"source": 2
},
{
"begin": 3140,
"end": 3234,
"name": "PUSH [tag]",
"source": 2,
"value": "172"
},
{
"begin": 3230,
"end": 3233,
"name": "DUP5",
"source": 2
},
{
"begin": 3222,
"end": 3228,
"name": "DUP3",
"source": 2
},
{
"begin": 3215,
"end": 3219,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 3207,
"end": 3213,
"name": "DUP7",
"source": 2
},
{
"begin": 3203,
"end": 3220,
"name": "ADD",
"source": 2
},
{
"begin": 3140,
"end": 3234,
"name": "PUSH [tag]",
"source": 2,
"value": "115"
},
{
"begin": 3140,
"end": 3234,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3140,
"end": 3234,
"name": "tag",
"source": 2,
"value": "172"
},
{
"begin": 3140,
"end": 3234,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3131,
"end": 3234,
"name": "SWAP2",
"source": 2
},
{
"begin": 3131,
"end": 3234,
"name": "POP",
"source": 2
},
{
"begin": 2947,
"end": 3240,
"name": "POP",
"source": 2
},
{
"begin": 2870,
"end": 3240,
"name": "SWAP3",
"source": 2
},
{
"begin": 2870,
"end": 3240,
"name": "SWAP2",
"source": 2
},
{
"begin": 2870,
"end": 3240,
"name": "POP",
"source": 2
},
{
"begin": 2870,
"end": 3240,
"name": "POP",
"source": 2
},
{
"begin": 2870,
"end": 3240,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 3246,
"end": 3323,
"name": "tag",
"source": 2,
"value": "117"
},
{
"begin": 3246,
"end": 3323,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3283,
"end": 3290,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3312,
"end": 3317,
"name": "DUP2",
"source": 2
},
{
"begin": 3301,
"end": 3317,
"name": "SWAP1",
"source": 2
},
{
"begin": 3301,
"end": 3317,
"name": "POP",
"source": 2
},
{
"begin": 3246,
"end": 3323,
"name": "SWAP2",
"source": 2
},
{
"begin": 3246,
"end": 3323,
"name": "SWAP1",
"source": 2
},
{
"begin": 3246,
"end": 3323,
"name": "POP",
"source": 2
},
{
"begin": 3246,
"end": 3323,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 3329,
"end": 3451,
"name": "tag",
"source": 2,
"value": "118"
},
{
"begin": 3329,
"end": 3451,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3402,
"end": 3426,
"name": "PUSH [tag]",
"source": 2,
"value": "175"
},
{
"begin": 3420,
"end": 3425,
"name": "DUP2",
"source": 2
},
{
"begin": 3402,
"end": 3426,
"name": "PUSH [tag]",
"source": 2,
"value": "117"
},
{
"begin": 3402,
"end": 3426,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3402,
"end": 3426,
"name": "tag",
"source": 2,
"value": "175"
},
{
"begin": 3402,
"end": 3426,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3395,
"end": 3400,
"name": "DUP2",
"source": 2
},
{
"begin": 3392,
"end": 3427,
"name": "EQ",
"source": 2
},
{
"begin": 3382,
"end": 3445,
"name": "PUSH [tag]",
"source": 2,
"value": "176"
},
{
"begin": 3382,
"end": 3445,
"name": "JUMPI",
"source": 2
},
{
"begin": 3441,
"end": 3442,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3438,
"end": 3439,
"name": "DUP1",
"source": 2
},
{
"begin": 3431,
"end": 3443,
"name": "REVERT",
"source": 2
},
{
"begin": 3382,
"end": 3445,
"name": "tag",
"source": 2,
"value": "176"
},
{
"begin": 3382,
"end": 3445,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3329,
"end": 3451,
"name": "POP",
"source": 2
},
{
"begin": 3329,
"end": 3451,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 3457,
"end": 3596,
"name": "tag",
"source": 2,
"value": "119"
},
{
"begin": 3457,
"end": 3596,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3503,
"end": 3508,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3541,
"end": 3547,
"name": "DUP2",
"source": 2
},
{
"begin": 3528,
"end": 3548,
"name": "CALLDATALOAD",
"source": 2
},
{
"begin": 3519,
"end": 3548,
"name": "SWAP1",
"source": 2
},
{
"begin": 3519,
"end": 3548,
"name": "POP",
"source": 2
},
{
"begin": 3557,
"end": 3590,
"name": "PUSH [tag]",
"source": 2,
"value": "178"
},
{
"begin": 3584,
"end": 3589,
"name": "DUP2",
"source": 2
},
{
"begin": 3557,
"end": 3590,
"name": "PUSH [tag]",
"source": 2,
"value": "118"
},
{
"begin": 3557,
"end": 3590,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3557,
"end": 3590,
"name": "tag",
"source": 2,
"value": "178"
},
{
"begin": 3557,
"end": 3590,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3457,
"end": 3596,
"name": "SWAP3",
"source": 2
},
{
"begin": 3457,
"end": 3596,
"name": "SWAP2",
"source": 2
},
{
"begin": 3457,
"end": 3596,
"name": "POP",
"source": 2
},
{
"begin": 3457,
"end": 3596,
"name": "POP",
"source": 2
},
{
"begin": 3457,
"end": 3596,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 3602,
"end": 4577,
"name": "tag",
"source": 2,
"value": "9"
},
{
"begin": 3602,
"end": 4577,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3713,
"end": 3719,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3721,
"end": 3727,
"name": "DUP1",
"source": 2
},
{
"begin": 3729,
"end": 3735,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3737,
"end": 3743,
"name": "DUP1",
"source": 2
},
{
"begin": 3786,
"end": 3789,
"name": "PUSH",
"source": 2,
"value": "80"
},
{
"begin": 3774,
"end": 3783,
"name": "DUP6",
"source": 2
},
{
"begin": 3765,
"end": 3772,
"name": "DUP8",
"source": 2
},
{
"begin": 3761,
"end": 3784,
"name": "SUB",
"source": 2
},
{
"begin": 3757,
"end": 3790,
"name": "SLT",
"source": 2
},
{
"begin": 3754,
"end": 3874,
"name": "ISZERO",
"source": 2
},
{
"begin": 3754,
"end": 3874,
"name": "PUSH [tag]",
"source": 2,
"value": "180"
},
{
"begin": 3754,
"end": 3874,
"name": "JUMPI",
"source": 2
},
{
"begin": 3793,
"end": 3872,
"name": "PUSH [tag]",
"source": 2,
"value": "181"
},
{
"begin": 3793,
"end": 3872,
"name": "PUSH [tag]",
"source": 2,
"value": "102"
},
{
"begin": 3793,
"end": 3872,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3793,
"end": 3872,
"name": "tag",
"source": 2,
"value": "181"
},
{
"begin": 3793,
"end": 3872,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3754,
"end": 3874,
"name": "tag",
"source": 2,
"value": "180"
},
{
"begin": 3754,
"end": 3874,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3941,
"end": 3942,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 3930,
"end": 3939,
"name": "DUP6",
"source": 2
},
{
"begin": 3926,
"end": 3943,
"name": "ADD",
"source": 2
},
{
"begin": 3913,
"end": 3944,
"name": "CALLDATALOAD",
"source": 2
},
{
"begin": 3971,
"end": 3989,
"name": "PUSH",
"source": 2,
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 3963,
"end": 3969,
"name": "DUP2",
"source": 2
},
{
"begin": 3960,
"end": 3990,
"name": "GT",
"source": 2
},
{
"begin": 3957,
"end": 4074,
"name": "ISZERO",
"source": 2
},
{
"begin": 3957,
"end": 4074,
"name": "PUSH [tag]",
"source": 2,
"value": "182"
},
{
"begin": 3957,
"end": 4074,
"name": "JUMPI",
"source": 2
},
{
"begin": 3993,
"end": 4072,
"name": "PUSH [tag]",
"source": 2,
"value": "183"
},
{
"begin": 3993,
"end": 4072,
"name": "PUSH [tag]",
"source": 2,
"value": "103"
},
{
"begin": 3993,
"end": 4072,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 3993,
"end": 4072,
"name": "tag",
"source": 2,
"value": "183"
},
{
"begin": 3993,
"end": 4072,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 3957,
"end": 4074,
"name": "tag",
"source": 2,
"value": "182"
},
{
"begin": 3957,
"end": 4074,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4098,
"end": 4176,
"name": "PUSH [tag]",
"source": 2,
"value": "184"
},
{
"begin": 4168,
"end": 4175,
"name": "DUP8",
"source": 2
},
{
"begin": 4159,
"end": 4165,
"name": "DUP3",
"source": 2
},
{
"begin": 4148,
"end": 4157,
"name": "DUP9",
"source": 2
},
{
"begin": 4144,
"end": 4166,
"name": "ADD",
"source": 2
},
{
"begin": 4098,
"end": 4176,
"name": "PUSH [tag]",
"source": 2,
"value": "116"
},
{
"begin": 4098,
"end": 4176,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 4098,
"end": 4176,
"name": "tag",
"source": 2,
"value": "184"
},
{
"begin": 4098,
"end": 4176,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4088,
"end": 4176,
"name": "SWAP5",
"source": 2
},
{
"begin": 4088,
"end": 4176,
"name": "POP",
"source": 2
},
{
"begin": 3884,
"end": 4186,
"name": "POP",
"source": 2
},
{
"begin": 4225,
"end": 4227,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 4251,
"end": 4304,
"name": "PUSH [tag]",
"source": 2,
"value": "185"
},
{
"begin": 4296,
"end": 4303,
"name": "DUP8",
"source": 2
},
{
"begin": 4287,
"end": 4293,
"name": "DUP3",
"source": 2
},
{
"begin": 4276,
"end": 4285,
"name": "DUP9",
"source": 2
},
{
"begin": 4272,
"end": 4294,
"name": "ADD",
"source": 2
},
{
"begin": 4251,
"end": 4304,
"name": "PUSH [tag]",
"source": 2,
"value": "119"
},
{
"begin": 4251,
"end": 4304,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 4251,
"end": 4304,
"name": "tag",
"source": 2,
"value": "185"
},
{
"begin": 4251,
"end": 4304,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4241,
"end": 4304,
"name": "SWAP4",
"source": 2
},
{
"begin": 4241,
"end": 4304,
"name": "POP",
"source": 2
},
{
"begin": 4196,
"end": 4314,
"name": "POP",
"source": 2
},
{
"begin": 4353,
"end": 4355,
"name": "PUSH",
"source": 2,
"value": "40"
},
{
"begin": 4379,
"end": 4432,
"name": "PUSH [tag]",
"source": 2,
"value": "186"
},
{
"begin": 4424,
"end": 4431,
"name": "DUP8",
"source": 2
},
{
"begin": 4415,
"end": 4421,
"name": "DUP3",
"source": 2
},
{
"begin": 4404,
"end": 4413,
"name": "DUP9",
"source": 2
},
{
"begin": 4400,
"end": 4422,
"name": "ADD",
"source": 2
},
{
"begin": 4379,
"end": 4432,
"name": "PUSH [tag]",
"source": 2,
"value": "119"
},
{
"begin": 4379,
"end": 4432,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 4379,
"end": 4432,
"name": "tag",
"source": 2,
"value": "186"
},
{
"begin": 4379,
"end": 4432,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4369,
"end": 4432,
"name": "SWAP3",
"source": 2
},
{
"begin": 4369,
"end": 4432,
"name": "POP",
"source": 2
},
{
"begin": 4324,
"end": 4442,
"name": "POP",
"source": 2
},
{
"begin": 4481,
"end": 4483,
"name": "PUSH",
"source": 2,
"value": "60"
},
{
"begin": 4507,
"end": 4560,
"name": "PUSH [tag]",
"source": 2,
"value": "187"
},
{
"begin": 4552,
"end": 4559,
"name": "DUP8",
"source": 2
},
{
"begin": 4543,
"end": 4549,
"name": "DUP3",
"source": 2
},
{
"begin": 4532,
"end": 4541,
"name": "DUP9",
"source": 2
},
{
"begin": 4528,
"end": 4550,
"name": "ADD",
"source": 2
},
{
"begin": 4507,
"end": 4560,
"name": "PUSH [tag]",
"source": 2,
"value": "119"
},
{
"begin": 4507,
"end": 4560,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 4507,
"end": 4560,
"name": "tag",
"source": 2,
"value": "187"
},
{
"begin": 4507,
"end": 4560,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4497,
"end": 4560,
"name": "SWAP2",
"source": 2
},
{
"begin": 4497,
"end": 4560,
"name": "POP",
"source": 2
},
{
"begin": 4452,
"end": 4570,
"name": "POP",
"source": 2
},
{
"begin": 3602,
"end": 4577,
"name": "SWAP3",
"source": 2
},
{
"begin": 3602,
"end": 4577,
"name": "SWAP6",
"source": 2
},
{
"begin": 3602,
"end": 4577,
"name": "SWAP2",
"source": 2
},
{
"begin": 3602,
"end": 4577,
"name": "SWAP5",
"source": 2
},
{
"begin": 3602,
"end": 4577,
"name": "POP",
"source": 2
},
{
"begin": 3602,
"end": 4577,
"name": "SWAP3",
"source": 2
},
{
"begin": 3602,
"end": 4577,
"name": "POP",
"source": 2
},
{
"begin": 3602,
"end": 4577,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 4583,
"end": 4660,
"name": "tag",
"source": 2,
"value": "120"
},
{
"begin": 4583,
"end": 4660,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4620,
"end": 4627,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 4649,
"end": 4654,
"name": "DUP2",
"source": 2
},
{
"begin": 4638,
"end": 4654,
"name": "SWAP1",
"source": 2
},
{
"begin": 4638,
"end": 4654,
"name": "POP",
"source": 2
},
{
"begin": 4583,
"end": 4660,
"name": "SWAP2",
"source": 2
},
{
"begin": 4583,
"end": 4660,
"name": "SWAP1",
"source": 2
},
{
"begin": 4583,
"end": 4660,
"name": "POP",
"source": 2
},
{
"begin": 4583,
"end": 4660,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 4666,
"end": 4784,
"name": "tag",
"source": 2,
"value": "121"
},
{
"begin": 4666,
"end": 4784,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4753,
"end": 4777,
"name": "PUSH [tag]",
"source": 2,
"value": "190"
},
{
"begin": 4771,
"end": 4776,
"name": "DUP2",
"source": 2
},
{
"begin": 4753,
"end": 4777,
"name": "PUSH [tag]",
"source": 2,
"value": "120"
},
{
"begin": 4753,
"end": 4777,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 4753,
"end": 4777,
"name": "tag",
"source": 2,
"value": "190"
},
{
"begin": 4753,
"end": 4777,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4748,
"end": 4751,
"name": "DUP3",
"source": 2
},
{
"begin": 4741,
"end": 4778,
"name": "MSTORE",
"source": 2
},
{
"begin": 4666,
"end": 4784,
"name": "POP",
"source": 2
},
{
"begin": 4666,
"end": 4784,
"name": "POP",
"source": 2
},
{
"begin": 4666,
"end": 4784,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 4790,
"end": 5012,
"name": "tag",
"source": 2,
"value": "12"
},
{
"begin": 4790,
"end": 5012,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4883,
"end": 4887,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 4921,
"end": 4923,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 4910,
"end": 4919,
"name": "DUP3",
"source": 2
},
{
"begin": 4906,
"end": 4924,
"name": "ADD",
"source": 2
},
{
"begin": 4898,
"end": 4924,
"name": "SWAP1",
"source": 2
},
{
"begin": 4898,
"end": 4924,
"name": "POP",
"source": 2
},
{
"begin": 4934,
"end": 5005,
"name": "PUSH [tag]",
"source": 2,
"value": "192"
},
{
"begin": 5002,
"end": 5003,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 4991,
"end": 5000,
"name": "DUP4",
"source": 2
},
{
"begin": 4987,
"end": 5004,
"name": "ADD",
"source": 2
},
{
"begin": 4978,
"end": 4984,
"name": "DUP5",
"source": 2
},
{
"begin": 4934,
"end": 5005,
"name": "PUSH [tag]",
"source": 2,
"value": "121"
},
{
"begin": 4934,
"end": 5005,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 4934,
"end": 5005,
"name": "tag",
"source": 2,
"value": "192"
},
{
"begin": 4934,
"end": 5005,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 4790,
"end": 5012,
"name": "SWAP3",
"source": 2
},
{
"begin": 4790,
"end": 5012,
"name": "SWAP2",
"source": 2
},
{
"begin": 4790,
"end": 5012,
"name": "POP",
"source": 2
},
{
"begin": 4790,
"end": 5012,
"name": "POP",
"source": 2
},
{
"begin": 4790,
"end": 5012,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 5018,
"end": 5847,
"name": "tag",
"source": 2,
"value": "15"
},
{
"begin": 5018,
"end": 5847,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5120,
"end": 5126,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 5128,
"end": 5134,
"name": "DUP1",
"source": 2
},
{
"begin": 5136,
"end": 5142,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 5185,
"end": 5187,
"name": "PUSH",
"source": 2,
"value": "60"
},
{
"begin": 5173,
"end": 5182,
"name": "DUP5",
"source": 2
},
{
"begin": 5164,
"end": 5171,
"name": "DUP7",
"source": 2
},
{
"begin": 5160,
"end": 5183,
"name": "SUB",
"source": 2
},
{
"begin": 5156,
"end": 5188,
"name": "SLT",
"source": 2
},
{
"begin": 5153,
"end": 5272,
"name": "ISZERO",
"source": 2
},
{
"begin": 5153,
"end": 5272,
"name": "PUSH [tag]",
"source": 2,
"value": "194"
},
{
"begin": 5153,
"end": 5272,
"name": "JUMPI",
"source": 2
},
{
"begin": 5191,
"end": 5270,
"name": "PUSH [tag]",
"source": 2,
"value": "195"
},
{
"begin": 5191,
"end": 5270,
"name": "PUSH [tag]",
"source": 2,
"value": "102"
},
{
"begin": 5191,
"end": 5270,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 5191,
"end": 5270,
"name": "tag",
"source": 2,
"value": "195"
},
{
"begin": 5191,
"end": 5270,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5153,
"end": 5272,
"name": "tag",
"source": 2,
"value": "194"
},
{
"begin": 5153,
"end": 5272,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5339,
"end": 5340,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 5328,
"end": 5337,
"name": "DUP5",
"source": 2
},
{
"begin": 5324,
"end": 5341,
"name": "ADD",
"source": 2
},
{
"begin": 5311,
"end": 5342,
"name": "CALLDATALOAD",
"source": 2
},
{
"begin": 5369,
"end": 5387,
"name": "PUSH",
"source": 2,
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 5361,
"end": 5367,
"name": "DUP2",
"source": 2
},
{
"begin": 5358,
"end": 5388,
"name": "GT",
"source": 2
},
{
"begin": 5355,
"end": 5472,
"name": "ISZERO",
"source": 2
},
{
"begin": 5355,
"end": 5472,
"name": "PUSH [tag]",
"source": 2,
"value": "196"
},
{
"begin": 5355,
"end": 5472,
"name": "JUMPI",
"source": 2
},
{
"begin": 5391,
"end": 5470,
"name": "PUSH [tag]",
"source": 2,
"value": "197"
},
{
"begin": 5391,
"end": 5470,
"name": "PUSH [tag]",
"source": 2,
"value": "103"
},
{
"begin": 5391,
"end": 5470,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 5391,
"end": 5470,
"name": "tag",
"source": 2,
"value": "197"
},
{
"begin": 5391,
"end": 5470,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5355,
"end": 5472,
"name": "tag",
"source": 2,
"value": "196"
},
{
"begin": 5355,
"end": 5472,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5496,
"end": 5574,
"name": "PUSH [tag]",
"source": 2,
"value": "198"
},
{
"begin": 5566,
"end": 5573,
"name": "DUP7",
"source": 2
},
{
"begin": 5557,
"end": 5563,
"name": "DUP3",
"source": 2
},
{
"begin": 5546,
"end": 5555,
"name": "DUP8",
"source": 2
},
{
"begin": 5542,
"end": 5564,
"name": "ADD",
"source": 2
},
{
"begin": 5496,
"end": 5574,
"name": "PUSH [tag]",
"source": 2,
"value": "116"
},
{
"begin": 5496,
"end": 5574,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 5496,
"end": 5574,
"name": "tag",
"source": 2,
"value": "198"
},
{
"begin": 5496,
"end": 5574,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5486,
"end": 5574,
"name": "SWAP4",
"source": 2
},
{
"begin": 5486,
"end": 5574,
"name": "POP",
"source": 2
},
{
"begin": 5282,
"end": 5584,
"name": "POP",
"source": 2
},
{
"begin": 5623,
"end": 5625,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 5649,
"end": 5702,
"name": "PUSH [tag]",
"source": 2,
"value": "199"
},
{
"begin": 5694,
"end": 5701,
"name": "DUP7",
"source": 2
},
{
"begin": 5685,
"end": 5691,
"name": "DUP3",
"source": 2
},
{
"begin": 5674,
"end": 5683,
"name": "DUP8",
"source": 2
},
{
"begin": 5670,
"end": 5692,
"name": "ADD",
"source": 2
},
{
"begin": 5649,
"end": 5702,
"name": "PUSH [tag]",
"source": 2,
"value": "119"
},
{
"begin": 5649,
"end": 5702,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 5649,
"end": 5702,
"name": "tag",
"source": 2,
"value": "199"
},
{
"begin": 5649,
"end": 5702,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5639,
"end": 5702,
"name": "SWAP3",
"source": 2
},
{
"begin": 5639,
"end": 5702,
"name": "POP",
"source": 2
},
{
"begin": 5594,
"end": 5712,
"name": "POP",
"source": 2
},
{
"begin": 5751,
"end": 5753,
"name": "PUSH",
"source": 2,
"value": "40"
},
{
"begin": 5777,
"end": 5830,
"name": "PUSH [tag]",
"source": 2,
"value": "200"
},
{
"begin": 5822,
"end": 5829,
"name": "DUP7",
"source": 2
},
{
"begin": 5813,
"end": 5819,
"name": "DUP3",
"source": 2
},
{
"begin": 5802,
"end": 5811,
"name": "DUP8",
"source": 2
},
{
"begin": 5798,
"end": 5820,
"name": "ADD",
"source": 2
},
{
"begin": 5777,
"end": 5830,
"name": "PUSH [tag]",
"source": 2,
"value": "119"
},
{
"begin": 5777,
"end": 5830,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 5777,
"end": 5830,
"name": "tag",
"source": 2,
"value": "200"
},
{
"begin": 5777,
"end": 5830,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5767,
"end": 5830,
"name": "SWAP2",
"source": 2
},
{
"begin": 5767,
"end": 5830,
"name": "POP",
"source": 2
},
{
"begin": 5722,
"end": 5840,
"name": "POP",
"source": 2
},
{
"begin": 5018,
"end": 5847,
"name": "SWAP3",
"source": 2
},
{
"begin": 5018,
"end": 5847,
"name": "POP",
"source": 2
},
{
"begin": 5018,
"end": 5847,
"name": "SWAP3",
"source": 2
},
{
"begin": 5018,
"end": 5847,
"name": "POP",
"source": 2
},
{
"begin": 5018,
"end": 5847,
"name": "SWAP3",
"source": 2
},
{
"begin": 5018,
"end": 5847,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 5853,
"end": 6472,
"name": "tag",
"source": 2,
"value": "20"
},
{
"begin": 5853,
"end": 6472,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5930,
"end": 5936,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 5938,
"end": 5944,
"name": "DUP1",
"source": 2
},
{
"begin": 5946,
"end": 5952,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 5995,
"end": 5997,
"name": "PUSH",
"source": 2,
"value": "60"
},
{
"begin": 5983,
"end": 5992,
"name": "DUP5",
"source": 2
},
{
"begin": 5974,
"end": 5981,
"name": "DUP7",
"source": 2
},
{
"begin": 5970,
"end": 5993,
"name": "SUB",
"source": 2
},
{
"begin": 5966,
"end": 5998,
"name": "SLT",
"source": 2
},
{
"begin": 5963,
"end": 6082,
"name": "ISZERO",
"source": 2
},
{
"begin": 5963,
"end": 6082,
"name": "PUSH [tag]",
"source": 2,
"value": "202"
},
{
"begin": 5963,
"end": 6082,
"name": "JUMPI",
"source": 2
},
{
"begin": 6001,
"end": 6080,
"name": "PUSH [tag]",
"source": 2,
"value": "203"
},
{
"begin": 6001,
"end": 6080,
"name": "PUSH [tag]",
"source": 2,
"value": "102"
},
{
"begin": 6001,
"end": 6080,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 6001,
"end": 6080,
"name": "tag",
"source": 2,
"value": "203"
},
{
"begin": 6001,
"end": 6080,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 5963,
"end": 6082,
"name": "tag",
"source": 2,
"value": "202"
},
{
"begin": 5963,
"end": 6082,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 6121,
"end": 6122,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 6146,
"end": 6199,
"name": "PUSH [tag]",
"source": 2,
"value": "204"
},
{
"begin": 6191,
"end": 6198,
"name": "DUP7",
"source": 2
},
{
"begin": 6182,
"end": 6188,
"name": "DUP3",
"source": 2
},
{
"begin": 6171,
"end": 6180,
"name": "DUP8",
"source": 2
},
{
"begin": 6167,
"end": 6189,
"name": "ADD",
"source": 2
},
{
"begin": 6146,
"end": 6199,
"name": "PUSH [tag]",
"source": 2,
"value": "114"
},
{
"begin": 6146,
"end": 6199,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 6146,
"end": 6199,
"name": "tag",
"source": 2,
"value": "204"
},
{
"begin": 6146,
"end": 6199,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 6136,
"end": 6199,
"name": "SWAP4",
"source": 2
},
{
"begin": 6136,
"end": 6199,
"name": "POP",
"source": 2
},
{
"begin": 6092,
"end": 6209,
"name": "POP",
"source": 2
},
{
"begin": 6248,
"end": 6250,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 6274,
"end": 6327,
"name": "PUSH [tag]",
"source": 2,
"value": "205"
},
{
"begin": 6319,
"end": 6326,
"name": "DUP7",
"source": 2
},
{
"begin": 6310,
"end": 6316,
"name": "DUP3",
"source": 2
},
{
"begin": 6299,
"end": 6308,
"name": "DUP8",
"source": 2
},
{
"begin": 6295,
"end": 6317,
"name": "ADD",
"source": 2
},
{
"begin": 6274,
"end": 6327,
"name": "PUSH [tag]",
"source": 2,
"value": "119"
},
{
"begin": 6274,
"end": 6327,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 6274,
"end": 6327,
"name": "tag",
"source": 2,
"value": "205"
},
{
"begin": 6274,
"end": 6327,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 6264,
"end": 6327,
"name": "SWAP3",
"source": 2
},
{
"begin": 6264,
"end": 6327,
"name": "POP",
"source": 2
},
{
"begin": 6219,
"end": 6337,
"name": "POP",
"source": 2
},
{
"begin": 6376,
"end": 6378,
"name": "PUSH",
"source": 2,
"value": "40"
},
{
"begin": 6402,
"end": 6455,
"name": "PUSH [tag]",
"source": 2,
"value": "206"
},
{
"begin": 6447,
"end": 6454,
"name": "DUP7",
"source": 2
},
{
"begin": 6438,
"end": 6444,
"name": "DUP3",
"source": 2
},
{
"begin": 6427,
"end": 6436,
"name": "DUP8",
"source": 2
},
{
"begin": 6423,
"end": 6445,
"name": "ADD",
"source": 2
},
{
"begin": 6402,
"end": 6455,
"name": "PUSH [tag]",
"source": 2,
"value": "119"
},
{
"begin": 6402,
"end": 6455,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 6402,
"end": 6455,
"name": "tag",
"source": 2,
"value": "206"
},
{
"begin": 6402,
"end": 6455,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 6392,
"end": 6455,
"name": "SWAP2",
"source": 2
},
{
"begin": 6392,
"end": 6455,
"name": "POP",
"source": 2
},
{
"begin": 6347,
"end": 6465,
"name": "POP",
"source": 2
},
{
"begin": 5853,
"end": 6472,
"name": "SWAP3",
"source": 2
},
{
"begin": 5853,
"end": 6472,
"name": "POP",
"source": 2
},
{
"begin": 5853,
"end": 6472,
"name": "SWAP3",
"source": 2
},
{
"begin": 5853,
"end": 6472,
"name": "POP",
"source": 2
},
{
"begin": 5853,
"end": 6472,
"name": "SWAP3",
"source": 2
},
{
"begin": 5853,
"end": 6472,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 6478,
"end": 6592,
"name": "tag",
"source": 2,
"value": "122"
},
{
"begin": 6478,
"end": 6592,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 6545,
"end": 6551,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 6579,
"end": 6584,
"name": "DUP2",
"source": 2
},
{
"begin": 6573,
"end": 6585,
"name": "MLOAD",
"source": 2
},
{
"begin": 6563,
"end": 6585,
"name": "SWAP1",
"source": 2
},
{
"begin": 6563,
"end": 6585,
"name": "POP",
"source": 2
},
{
"begin": 6478,
"end": 6592,
"name": "SWAP2",
"source": 2
},
{
"begin": 6478,
"end": 6592,
"name": "SWAP1",
"source": 2
},
{
"begin": 6478,
"end": 6592,
"name": "POP",
"source": 2
},
{
"begin": 6478,
"end": 6592,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 6598,
"end": 6782,
"name": "tag",
"source": 2,
"value": "123"
},
{
"begin": 6598,
"end": 6782,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 6697,
"end": 6708,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 6731,
"end": 6737,
"name": "DUP3",
"source": 2
},
{
"begin": 6726,
"end": 6729,
"name": "DUP3",
"source": 2
},
{
"begin": 6719,
"end": 6738,
"name": "MSTORE",
"source": 2
},
{
"begin": 6771,
"end": 6775,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 6766,
"end": 6769,
"name": "DUP3",
"source": 2
},
{
"begin": 6762,
"end": 6776,
"name": "ADD",
"source": 2
},
{
"begin": 6747,
"end": 6776,
"name": "SWAP1",
"source": 2
},
{
"begin": 6747,
"end": 6776,
"name": "POP",
"source": 2
},
{
"begin": 6598,
"end": 6782,
"name": "SWAP3",
"source": 2
},
{
"begin": 6598,
"end": 6782,
"name": "SWAP2",
"source": 2
},
{
"begin": 6598,
"end": 6782,
"name": "POP",
"source": 2
},
{
"begin": 6598,
"end": 6782,
"name": "POP",
"source": 2
},
{
"begin": 6598,
"end": 6782,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 6788,
"end": 6920,
"name": "tag",
"source": 2,
"value": "124"
},
{
"begin": 6788,
"end": 6920,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 6855,
"end": 6859,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 6878,
"end": 6881,
"name": "DUP2",
"source": 2
},
{
"begin": 6870,
"end": 6881,
"name": "SWAP1",
"source": 2
},
{
"begin": 6870,
"end": 6881,
"name": "POP",
"source": 2
},
{
"begin": 6908,
"end": 6912,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 6903,
"end": 6906,
"name": "DUP3",
"source": 2
},
{
"begin": 6899,
"end": 6913,
"name": "ADD",
"source": 2
},
{
"begin": 6891,
"end": 6913,
"name": "SWAP1",
"source": 2
},
{
"begin": 6891,
"end": 6913,
"name": "POP",
"source": 2
},
{
"begin": 6788,
"end": 6920,
"name": "SWAP2",
"source": 2
},
{
"begin": 6788,
"end": 6920,
"name": "SWAP1",
"source": 2
},
{
"begin": 6788,
"end": 6920,
"name": "POP",
"source": 2
},
{
"begin": 6788,
"end": 6920,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 6926,
"end": 7034,
"name": "tag",
"source": 2,
"value": "125"
},
{
"begin": 6926,
"end": 7034,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7003,
"end": 7027,
"name": "PUSH [tag]",
"source": 2,
"value": "211"
},
{
"begin": 7021,
"end": 7026,
"name": "DUP2",
"source": 2
},
{
"begin": 7003,
"end": 7027,
"name": "PUSH [tag]",
"source": 2,
"value": "120"
},
{
"begin": 7003,
"end": 7027,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 7003,
"end": 7027,
"name": "tag",
"source": 2,
"value": "211"
},
{
"begin": 7003,
"end": 7027,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 6998,
"end": 7001,
"name": "DUP3",
"source": 2
},
{
"begin": 6991,
"end": 7028,
"name": "MSTORE",
"source": 2
},
{
"begin": 6926,
"end": 7034,
"name": "POP",
"source": 2
},
{
"begin": 6926,
"end": 7034,
"name": "POP",
"source": 2
},
{
"begin": 6926,
"end": 7034,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 7040,
"end": 7219,
"name": "tag",
"source": 2,
"value": "126"
},
{
"begin": 7040,
"end": 7219,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7109,
"end": 7119,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 7130,
"end": 7176,
"name": "PUSH [tag]",
"source": 2,
"value": "213"
},
{
"begin": 7172,
"end": 7175,
"name": "DUP4",
"source": 2
},
{
"begin": 7164,
"end": 7170,
"name": "DUP4",
"source": 2
},
{
"begin": 7130,
"end": 7176,
"name": "PUSH [tag]",
"source": 2,
"value": "125"
},
{
"begin": 7130,
"end": 7176,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 7130,
"end": 7176,
"name": "tag",
"source": 2,
"value": "213"
},
{
"begin": 7130,
"end": 7176,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7208,
"end": 7212,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 7203,
"end": 7206,
"name": "DUP4",
"source": 2
},
{
"begin": 7199,
"end": 7213,
"name": "ADD",
"source": 2
},
{
"begin": 7185,
"end": 7213,
"name": "SWAP1",
"source": 2
},
{
"begin": 7185,
"end": 7213,
"name": "POP",
"source": 2
},
{
"begin": 7040,
"end": 7219,
"name": "SWAP3",
"source": 2
},
{
"begin": 7040,
"end": 7219,
"name": "SWAP2",
"source": 2
},
{
"begin": 7040,
"end": 7219,
"name": "POP",
"source": 2
},
{
"begin": 7040,
"end": 7219,
"name": "POP",
"source": 2
},
{
"begin": 7040,
"end": 7219,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 7225,
"end": 7338,
"name": "tag",
"source": 2,
"value": "127"
},
{
"begin": 7225,
"end": 7338,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7295,
"end": 7299,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 7327,
"end": 7331,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 7322,
"end": 7325,
"name": "DUP3",
"source": 2
},
{
"begin": 7318,
"end": 7332,
"name": "ADD",
"source": 2
},
{
"begin": 7310,
"end": 7332,
"name": "SWAP1",
"source": 2
},
{
"begin": 7310,
"end": 7332,
"name": "POP",
"source": 2
},
{
"begin": 7225,
"end": 7338,
"name": "SWAP2",
"source": 2
},
{
"begin": 7225,
"end": 7338,
"name": "SWAP1",
"source": 2
},
{
"begin": 7225,
"end": 7338,
"name": "POP",
"source": 2
},
{
"begin": 7225,
"end": 7338,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 7374,
"end": 8106,
"name": "tag",
"source": 2,
"value": "128"
},
{
"begin": 7374,
"end": 8106,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7493,
"end": 7496,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 7522,
"end": 7576,
"name": "PUSH [tag]",
"source": 2,
"value": "216"
},
{
"begin": 7570,
"end": 7575,
"name": "DUP3",
"source": 2
},
{
"begin": 7522,
"end": 7576,
"name": "PUSH [tag]",
"source": 2,
"value": "122"
},
{
"begin": 7522,
"end": 7576,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 7522,
"end": 7576,
"name": "tag",
"source": 2,
"value": "216"
},
{
"begin": 7522,
"end": 7576,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7592,
"end": 7678,
"name": "PUSH [tag]",
"source": 2,
"value": "217"
},
{
"begin": 7671,
"end": 7677,
"name": "DUP2",
"source": 2
},
{
"begin": 7666,
"end": 7669,
"name": "DUP6",
"source": 2
},
{
"begin": 7592,
"end": 7678,
"name": "PUSH [tag]",
"source": 2,
"value": "123"
},
{
"begin": 7592,
"end": 7678,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 7592,
"end": 7678,
"name": "tag",
"source": 2,
"value": "217"
},
{
"begin": 7592,
"end": 7678,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7585,
"end": 7678,
"name": "SWAP4",
"source": 2
},
{
"begin": 7585,
"end": 7678,
"name": "POP",
"source": 2
},
{
"begin": 7702,
"end": 7758,
"name": "PUSH [tag]",
"source": 2,
"value": "218"
},
{
"begin": 7752,
"end": 7757,
"name": "DUP4",
"source": 2
},
{
"begin": 7702,
"end": 7758,
"name": "PUSH [tag]",
"source": 2,
"value": "124"
},
{
"begin": 7702,
"end": 7758,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 7702,
"end": 7758,
"name": "tag",
"source": 2,
"value": "218"
},
{
"begin": 7702,
"end": 7758,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7781,
"end": 7788,
"name": "DUP1",
"source": 2
},
{
"begin": 7812,
"end": 7813,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 7797,
"end": 8081,
"name": "tag",
"source": 2,
"value": "219"
},
{
"begin": 7797,
"end": 8081,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7822,
"end": 7828,
"name": "DUP4",
"source": 2
},
{
"begin": 7819,
"end": 7820,
"name": "DUP2",
"source": 2
},
{
"begin": 7816,
"end": 7829,
"name": "LT",
"source": 2
},
{
"begin": 7797,
"end": 8081,
"name": "ISZERO",
"source": 2
},
{
"begin": 7797,
"end": 8081,
"name": "PUSH [tag]",
"source": 2,
"value": "221"
},
{
"begin": 7797,
"end": 8081,
"name": "JUMPI",
"source": 2
},
{
"begin": 7898,
"end": 7904,
"name": "DUP2",
"source": 2
},
{
"begin": 7892,
"end": 7905,
"name": "MLOAD",
"source": 2
},
{
"begin": 7925,
"end": 7988,
"name": "PUSH [tag]",
"source": 2,
"value": "222"
},
{
"begin": 7984,
"end": 7987,
"name": "DUP9",
"source": 2
},
{
"begin": 7969,
"end": 7982,
"name": "DUP3",
"source": 2
},
{
"begin": 7925,
"end": 7988,
"name": "PUSH [tag]",
"source": 2,
"value": "126"
},
{
"begin": 7925,
"end": 7988,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 7925,
"end": 7988,
"name": "tag",
"source": 2,
"value": "222"
},
{
"begin": 7925,
"end": 7988,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7918,
"end": 7988,
"name": "SWAP8",
"source": 2
},
{
"begin": 7918,
"end": 7988,
"name": "POP",
"source": 2
},
{
"begin": 8011,
"end": 8071,
"name": "PUSH [tag]",
"source": 2,
"value": "223"
},
{
"begin": 8064,
"end": 8070,
"name": "DUP4",
"source": 2
},
{
"begin": 8011,
"end": 8071,
"name": "PUSH [tag]",
"source": 2,
"value": "127"
},
{
"begin": 8011,
"end": 8071,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 8011,
"end": 8071,
"name": "tag",
"source": 2,
"value": "223"
},
{
"begin": 8011,
"end": 8071,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 8001,
"end": 8071,
"name": "SWAP3",
"source": 2
},
{
"begin": 8001,
"end": 8071,
"name": "POP",
"source": 2
},
{
"begin": 7857,
"end": 8081,
"name": "POP",
"source": 2
},
{
"begin": 7844,
"end": 7845,
"name": "PUSH",
"source": 2,
"value": "1"
},
{
"begin": 7841,
"end": 7842,
"name": "DUP2",
"source": 2
},
{
"begin": 7837,
"end": 7846,
"name": "ADD",
"source": 2
},
{
"begin": 7832,
"end": 7846,
"name": "SWAP1",
"source": 2
},
{
"begin": 7832,
"end": 7846,
"name": "POP",
"source": 2
},
{
"begin": 7797,
"end": 8081,
"name": "PUSH [tag]",
"source": 2,
"value": "219"
},
{
"begin": 7797,
"end": 8081,
"name": "JUMP",
"source": 2
},
{
"begin": 7797,
"end": 8081,
"name": "tag",
"source": 2,
"value": "221"
},
{
"begin": 7797,
"end": 8081,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 7801,
"end": 7815,
"name": "POP",
"source": 2
},
{
"begin": 8097,
"end": 8100,
"name": "DUP6",
"source": 2
},
{
"begin": 8090,
"end": 8100,
"name": "SWAP4",
"source": 2
},
{
"begin": 8090,
"end": 8100,
"name": "POP",
"source": 2
},
{
"begin": 7498,
"end": 8106,
"name": "POP",
"source": 2
},
{
"begin": 7498,
"end": 8106,
"name": "POP",
"source": 2
},
{
"begin": 7498,
"end": 8106,
"name": "POP",
"source": 2
},
{
"begin": 7374,
"end": 8106,
"name": "SWAP3",
"source": 2
},
{
"begin": 7374,
"end": 8106,
"name": "SWAP2",
"source": 2
},
{
"begin": 7374,
"end": 8106,
"name": "POP",
"source": 2
},
{
"begin": 7374,
"end": 8106,
"name": "POP",
"source": 2
},
{
"begin": 7374,
"end": 8106,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 8112,
"end": 8485,
"name": "tag",
"source": 2,
"value": "27"
},
{
"begin": 8112,
"end": 8485,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 8255,
"end": 8259,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 8293,
"end": 8295,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 8282,
"end": 8291,
"name": "DUP3",
"source": 2
},
{
"begin": 8278,
"end": 8296,
"name": "ADD",
"source": 2
},
{
"begin": 8270,
"end": 8296,
"name": "SWAP1",
"source": 2
},
{
"begin": 8270,
"end": 8296,
"name": "POP",
"source": 2
},
{
"begin": 8342,
"end": 8351,
"name": "DUP2",
"source": 2
},
{
"begin": 8336,
"end": 8340,
"name": "DUP2",
"source": 2
},
{
"begin": 8332,
"end": 8352,
"name": "SUB",
"source": 2
},
{
"begin": 8328,
"end": 8329,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 8317,
"end": 8326,
"name": "DUP4",
"source": 2
},
{
"begin": 8313,
"end": 8330,
"name": "ADD",
"source": 2
},
{
"begin": 8306,
"end": 8353,
"name": "MSTORE",
"source": 2
},
{
"begin": 8370,
"end": 8478,
"name": "PUSH [tag]",
"source": 2,
"value": "225"
},
{
"begin": 8473,
"end": 8477,
"name": "DUP2",
"source": 2
},
{
"begin": 8464,
"end": 8470,
"name": "DUP5",
"source": 2
},
{
"begin": 8370,
"end": 8478,
"name": "PUSH [tag]",
"source": 2,
"value": "128"
},
{
"begin": 8370,
"end": 8478,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 8370,
"end": 8478,
"name": "tag",
"source": 2,
"value": "225"
},
{
"begin": 8370,
"end": 8478,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 8362,
"end": 8478,
"name": "SWAP1",
"source": 2
},
{
"begin": 8362,
"end": 8478,
"name": "POP",
"source": 2
},
{
"begin": 8112,
"end": 8485,
"name": "SWAP3",
"source": 2
},
{
"begin": 8112,
"end": 8485,
"name": "SWAP2",
"source": 2
},
{
"begin": 8112,
"end": 8485,
"name": "POP",
"source": 2
},
{
"begin": 8112,
"end": 8485,
"name": "POP",
"source": 2
},
{
"begin": 8112,
"end": 8485,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 8491,
"end": 8671,
"name": "tag",
"source": 2,
"value": "35"
},
{
"begin": 8491,
"end": 8671,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 8539,
"end": 8616,
"name": "PUSH",
"source": 2,
"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 8536,
"end": 8537,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 8529,
"end": 8617,
"name": "MSTORE",
"source": 2
},
{
"begin": 8636,
"end": 8640,
"name": "PUSH",
"source": 2,
"value": "32"
},
{
"begin": 8633,
"end": 8634,
"name": "PUSH",
"source": 2,
"value": "4"
},
{
"begin": 8626,
"end": 8641,
"name": "MSTORE",
"source": 2
},
{
"begin": 8660,
"end": 8664,
"name": "PUSH",
"source": 2,
"value": "24"
},
{
"begin": 8657,
"end": 8658,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 8650,
"end": 8665,
"name": "REVERT",
"source": 2
},
{
"begin": 8677,
"end": 8857,
"name": "tag",
"source": 2,
"value": "129"
},
{
"begin": 8677,
"end": 8857,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 8725,
"end": 8802,
"name": "PUSH",
"source": 2,
"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 8722,
"end": 8723,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 8715,
"end": 8803,
"name": "MSTORE",
"source": 2
},
{
"begin": 8822,
"end": 8826,
"name": "PUSH",
"source": 2,
"value": "11"
},
{
"begin": 8819,
"end": 8820,
"name": "PUSH",
"source": 2,
"value": "4"
},
{
"begin": 8812,
"end": 8827,
"name": "MSTORE",
"source": 2
},
{
"begin": 8846,
"end": 8850,
"name": "PUSH",
"source": 2,
"value": "24"
},
{
"begin": 8843,
"end": 8844,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 8836,
"end": 8851,
"name": "REVERT",
"source": 2
},
{
"begin": 8863,
"end": 9054,
"name": "tag",
"source": 2,
"value": "37"
},
{
"begin": 8863,
"end": 9054,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 8903,
"end": 8906,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 8922,
"end": 8942,
"name": "PUSH [tag]",
"source": 2,
"value": "229"
},
{
"begin": 8940,
"end": 8941,
"name": "DUP3",
"source": 2
},
{
"begin": 8922,
"end": 8942,
"name": "PUSH [tag]",
"source": 2,
"value": "117"
},
{
"begin": 8922,
"end": 8942,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 8922,
"end": 8942,
"name": "tag",
"source": 2,
"value": "229"
},
{
"begin": 8922,
"end": 8942,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 8917,
"end": 8942,
"name": "SWAP2",
"source": 2
},
{
"begin": 8917,
"end": 8942,
"name": "POP",
"source": 2
},
{
"begin": 8956,
"end": 8976,
"name": "PUSH [tag]",
"source": 2,
"value": "230"
},
{
"begin": 8974,
"end": 8975,
"name": "DUP4",
"source": 2
},
{
"begin": 8956,
"end": 8976,
"name": "PUSH [tag]",
"source": 2,
"value": "117"
},
{
"begin": 8956,
"end": 8976,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 8956,
"end": 8976,
"name": "tag",
"source": 2,
"value": "230"
},
{
"begin": 8956,
"end": 8976,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 8951,
"end": 8976,
"name": "SWAP3",
"source": 2
},
{
"begin": 8951,
"end": 8976,
"name": "POP",
"source": 2
},
{
"begin": 8999,
"end": 9000,
"name": "DUP3",
"source": 2
},
{
"begin": 8996,
"end": 8997,
"name": "DUP3",
"source": 2
},
{
"begin": 8992,
"end": 9001,
"name": "ADD",
"source": 2
},
{
"begin": 8985,
"end": 9001,
"name": "SWAP1",
"source": 2
},
{
"begin": 8985,
"end": 9001,
"name": "POP",
"source": 2
},
{
"begin": 9020,
"end": 9023,
"name": "DUP1",
"source": 2
},
{
"begin": 9017,
"end": 9018,
"name": "DUP3",
"source": 2
},
{
"begin": 9014,
"end": 9024,
"name": "GT",
"source": 2
},
{
"begin": 9011,
"end": 9047,
"name": "ISZERO",
"source": 2
},
{
"begin": 9011,
"end": 9047,
"name": "PUSH [tag]",
"source": 2,
"value": "231"
},
{
"begin": 9011,
"end": 9047,
"name": "JUMPI",
"source": 2
},
{
"begin": 9027,
"end": 9045,
"name": "PUSH [tag]",
"source": 2,
"value": "232"
},
{
"begin": 9027,
"end": 9045,
"name": "PUSH [tag]",
"source": 2,
"value": "129"
},
{
"begin": 9027,
"end": 9045,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 9027,
"end": 9045,
"name": "tag",
"source": 2,
"value": "232"
},
{
"begin": 9027,
"end": 9045,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9011,
"end": 9047,
"name": "tag",
"source": 2,
"value": "231"
},
{
"begin": 9011,
"end": 9047,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 8863,
"end": 9054,
"name": "SWAP3",
"source": 2
},
{
"begin": 8863,
"end": 9054,
"name": "SWAP2",
"source": 2
},
{
"begin": 8863,
"end": 9054,
"name": "POP",
"source": 2
},
{
"begin": 8863,
"end": 9054,
"name": "POP",
"source": 2
},
{
"begin": 8863,
"end": 9054,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 9060,
"end": 9293,
"name": "tag",
"source": 2,
"value": "39"
},
{
"begin": 9060,
"end": 9293,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9099,
"end": 9102,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 9122,
"end": 9146,
"name": "PUSH [tag]",
"source": 2,
"value": "234"
},
{
"begin": 9140,
"end": 9145,
"name": "DUP3",
"source": 2
},
{
"begin": 9122,
"end": 9146,
"name": "PUSH [tag]",
"source": 2,
"value": "117"
},
{
"begin": 9122,
"end": 9146,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 9122,
"end": 9146,
"name": "tag",
"source": 2,
"value": "234"
},
{
"begin": 9122,
"end": 9146,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9113,
"end": 9146,
"name": "SWAP2",
"source": 2
},
{
"begin": 9113,
"end": 9146,
"name": "POP",
"source": 2
},
{
"begin": 9168,
"end": 9234,
"name": "PUSH",
"source": 2,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 9161,
"end": 9166,
"name": "DUP3",
"source": 2
},
{
"begin": 9158,
"end": 9235,
"name": "SUB",
"source": 2
},
{
"begin": 9155,
"end": 9258,
"name": "PUSH [tag]",
"source": 2,
"value": "235"
},
{
"begin": 9155,
"end": 9258,
"name": "JUMPI",
"source": 2
},
{
"begin": 9238,
"end": 9256,
"name": "PUSH [tag]",
"source": 2,
"value": "236"
},
{
"begin": 9238,
"end": 9256,
"name": "PUSH [tag]",
"source": 2,
"value": "129"
},
{
"begin": 9238,
"end": 9256,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 9238,
"end": 9256,
"name": "tag",
"source": 2,
"value": "236"
},
{
"begin": 9238,
"end": 9256,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9155,
"end": 9258,
"name": "tag",
"source": 2,
"value": "235"
},
{
"begin": 9155,
"end": 9258,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9285,
"end": 9286,
"name": "PUSH",
"source": 2,
"value": "1"
},
{
"begin": 9278,
"end": 9283,
"name": "DUP3",
"source": 2
},
{
"begin": 9274,
"end": 9287,
"name": "ADD",
"source": 2
},
{
"begin": 9267,
"end": 9287,
"name": "SWAP1",
"source": 2
},
{
"begin": 9267,
"end": 9287,
"name": "POP",
"source": 2
},
{
"begin": 9060,
"end": 9293,
"name": "SWAP2",
"source": 2
},
{
"begin": 9060,
"end": 9293,
"name": "SWAP1",
"source": 2
},
{
"begin": 9060,
"end": 9293,
"name": "POP",
"source": 2
},
{
"begin": 9060,
"end": 9293,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 9299,
"end": 9417,
"name": "tag",
"source": 2,
"value": "130"
},
{
"begin": 9299,
"end": 9417,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9386,
"end": 9410,
"name": "PUSH [tag]",
"source": 2,
"value": "238"
},
{
"begin": 9404,
"end": 9409,
"name": "DUP2",
"source": 2
},
{
"begin": 9386,
"end": 9410,
"name": "PUSH [tag]",
"source": 2,
"value": "112"
},
{
"begin": 9386,
"end": 9410,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 9386,
"end": 9410,
"name": "tag",
"source": 2,
"value": "238"
},
{
"begin": 9386,
"end": 9410,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9381,
"end": 9384,
"name": "DUP3",
"source": 2
},
{
"begin": 9374,
"end": 9411,
"name": "MSTORE",
"source": 2
},
{
"begin": 9299,
"end": 9417,
"name": "POP",
"source": 2
},
{
"begin": 9299,
"end": 9417,
"name": "POP",
"source": 2
},
{
"begin": 9299,
"end": 9417,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 9423,
"end": 9541,
"name": "tag",
"source": 2,
"value": "131"
},
{
"begin": 9423,
"end": 9541,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9510,
"end": 9534,
"name": "PUSH [tag]",
"source": 2,
"value": "240"
},
{
"begin": 9528,
"end": 9533,
"name": "DUP2",
"source": 2
},
{
"begin": 9510,
"end": 9534,
"name": "PUSH [tag]",
"source": 2,
"value": "117"
},
{
"begin": 9510,
"end": 9534,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 9510,
"end": 9534,
"name": "tag",
"source": 2,
"value": "240"
},
{
"begin": 9510,
"end": 9534,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9505,
"end": 9508,
"name": "DUP3",
"source": 2
},
{
"begin": 9498,
"end": 9535,
"name": "MSTORE",
"source": 2
},
{
"begin": 9423,
"end": 9541,
"name": "POP",
"source": 2
},
{
"begin": 9423,
"end": 9541,
"name": "POP",
"source": 2
},
{
"begin": 9423,
"end": 9541,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 9547,
"end": 9989,
"name": "tag",
"source": 2,
"value": "55"
},
{
"begin": 9547,
"end": 9989,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9696,
"end": 9700,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 9734,
"end": 9736,
"name": "PUSH",
"source": 2,
"value": "60"
},
{
"begin": 9723,
"end": 9732,
"name": "DUP3",
"source": 2
},
{
"begin": 9719,
"end": 9737,
"name": "ADD",
"source": 2
},
{
"begin": 9711,
"end": 9737,
"name": "SWAP1",
"source": 2
},
{
"begin": 9711,
"end": 9737,
"name": "POP",
"source": 2
},
{
"begin": 9747,
"end": 9818,
"name": "PUSH [tag]",
"source": 2,
"value": "242"
},
{
"begin": 9815,
"end": 9816,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 9804,
"end": 9813,
"name": "DUP4",
"source": 2
},
{
"begin": 9800,
"end": 9817,
"name": "ADD",
"source": 2
},
{
"begin": 9791,
"end": 9797,
"name": "DUP7",
"source": 2
},
{
"begin": 9747,
"end": 9818,
"name": "PUSH [tag]",
"source": 2,
"value": "130"
},
{
"begin": 9747,
"end": 9818,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 9747,
"end": 9818,
"name": "tag",
"source": 2,
"value": "242"
},
{
"begin": 9747,
"end": 9818,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9828,
"end": 9900,
"name": "PUSH [tag]",
"source": 2,
"value": "243"
},
{
"begin": 9896,
"end": 9898,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 9885,
"end": 9894,
"name": "DUP4",
"source": 2
},
{
"begin": 9881,
"end": 9899,
"name": "ADD",
"source": 2
},
{
"begin": 9872,
"end": 9878,
"name": "DUP6",
"source": 2
},
{
"begin": 9828,
"end": 9900,
"name": "PUSH [tag]",
"source": 2,
"value": "131"
},
{
"begin": 9828,
"end": 9900,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 9828,
"end": 9900,
"name": "tag",
"source": 2,
"value": "243"
},
{
"begin": 9828,
"end": 9900,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9910,
"end": 9982,
"name": "PUSH [tag]",
"source": 2,
"value": "244"
},
{
"begin": 9978,
"end": 9980,
"name": "PUSH",
"source": 2,
"value": "40"
},
{
"begin": 9967,
"end": 9976,
"name": "DUP4",
"source": 2
},
{
"begin": 9963,
"end": 9981,
"name": "ADD",
"source": 2
},
{
"begin": 9954,
"end": 9960,
"name": "DUP5",
"source": 2
},
{
"begin": 9910,
"end": 9982,
"name": "PUSH [tag]",
"source": 2,
"value": "121"
},
{
"begin": 9910,
"end": 9982,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 9910,
"end": 9982,
"name": "tag",
"source": 2,
"value": "244"
},
{
"begin": 9910,
"end": 9982,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9547,
"end": 9989,
"name": "SWAP5",
"source": 2
},
{
"begin": 9547,
"end": 9989,
"name": "SWAP4",
"source": 2
},
{
"begin": 9547,
"end": 9989,
"name": "POP",
"source": 2
},
{
"begin": 9547,
"end": 9989,
"name": "POP",
"source": 2
},
{
"begin": 9547,
"end": 9989,
"name": "POP",
"source": 2
},
{
"begin": 9547,
"end": 9989,
"name": "POP",
"source": 2
},
{
"begin": 9547,
"end": 9989,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 9995,
"end": 10327,
"name": "tag",
"source": 2,
"value": "64"
},
{
"begin": 9995,
"end": 10327,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 10116,
"end": 10120,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 10154,
"end": 10156,
"name": "PUSH",
"source": 2,
"value": "40"
},
{
"begin": 10143,
"end": 10152,
"name": "DUP3",
"source": 2
},
{
"begin": 10139,
"end": 10157,
"name": "ADD",
"source": 2
},
{
"begin": 10131,
"end": 10157,
"name": "SWAP1",
"source": 2
},
{
"begin": 10131,
"end": 10157,
"name": "POP",
"source": 2
},
{
"begin": 10167,
"end": 10238,
"name": "PUSH [tag]",
"source": 2,
"value": "246"
},
{
"begin": 10235,
"end": 10236,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 10224,
"end": 10233,
"name": "DUP4",
"source": 2
},
{
"begin": 10220,
"end": 10237,
"name": "ADD",
"source": 2
},
{
"begin": 10211,
"end": 10217,
"name": "DUP6",
"source": 2
},
{
"begin": 10167,
"end": 10238,
"name": "PUSH [tag]",
"source": 2,
"value": "130"
},
{
"begin": 10167,
"end": 10238,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 10167,
"end": 10238,
"name": "tag",
"source": 2,
"value": "246"
},
{
"begin": 10167,
"end": 10238,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 10248,
"end": 10320,
"name": "PUSH [tag]",
"source": 2,
"value": "247"
},
{
"begin": 10316,
"end": 10318,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 10305,
"end": 10314,
"name": "DUP4",
"source": 2
},
{
"begin": 10301,
"end": 10319,
"name": "ADD",
"source": 2
},
{
"begin": 10292,
"end": 10298,
"name": "DUP5",
"source": 2
},
{
"begin": 10248,
"end": 10320,
"name": "PUSH [tag]",
"source": 2,
"value": "130"
},
{
"begin": 10248,
"end": 10320,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 10248,
"end": 10320,
"name": "tag",
"source": 2,
"value": "247"
},
{
"begin": 10248,
"end": 10320,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 9995,
"end": 10327,
"name": "SWAP4",
"source": 2
},
{
"begin": 9995,
"end": 10327,
"name": "SWAP3",
"source": 2
},
{
"begin": 9995,
"end": 10327,
"name": "POP",
"source": 2
},
{
"begin": 9995,
"end": 10327,
"name": "POP",
"source": 2
},
{
"begin": 9995,
"end": 10327,
"name": "POP",
"source": 2
},
{
"begin": 9995,
"end": 10327,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 10333,
"end": 10527,
"name": "tag",
"source": 2,
"value": "76"
},
{
"begin": 10333,
"end": 10527,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 10373,
"end": 10377,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 10393,
"end": 10413,
"name": "PUSH [tag]",
"source": 2,
"value": "249"
},
{
"begin": 10411,
"end": 10412,
"name": "DUP3",
"source": 2
},
{
"begin": 10393,
"end": 10413,
"name": "PUSH [tag]",
"source": 2,
"value": "117"
},
{
"begin": 10393,
"end": 10413,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 10393,
"end": 10413,
"name": "tag",
"source": 2,
"value": "249"
},
{
"begin": 10393,
"end": 10413,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 10388,
"end": 10413,
"name": "SWAP2",
"source": 2
},
{
"begin": 10388,
"end": 10413,
"name": "POP",
"source": 2
},
{
"begin": 10427,
"end": 10447,
"name": "PUSH [tag]",
"source": 2,
"value": "250"
},
{
"begin": 10445,
"end": 10446,
"name": "DUP4",
"source": 2
},
{
"begin": 10427,
"end": 10447,
"name": "PUSH [tag]",
"source": 2,
"value": "117"
},
{
"begin": 10427,
"end": 10447,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 10427,
"end": 10447,
"name": "tag",
"source": 2,
"value": "250"
},
{
"begin": 10427,
"end": 10447,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 10422,
"end": 10447,
"name": "SWAP3",
"source": 2
},
{
"begin": 10422,
"end": 10447,
"name": "POP",
"source": 2
},
{
"begin": 10471,
"end": 10472,
"name": "DUP3",
"source": 2
},
{
"begin": 10468,
"end": 10469,
"name": "DUP3",
"source": 2
},
{
"begin": 10464,
"end": 10473,
"name": "SUB",
"source": 2
},
{
"begin": 10456,
"end": 10473,
"name": "SWAP1",
"source": 2
},
{
"begin": 10456,
"end": 10473,
"name": "POP",
"source": 2
},
{
"begin": 10495,
"end": 10496,
"name": "DUP2",
"source": 2
},
{
"begin": 10489,
"end": 10493,
"name": "DUP2",
"source": 2
},
{
"begin": 10486,
"end": 10497,
"name": "GT",
"source": 2
},
{
"begin": 10483,
"end": 10520,
"name": "ISZERO",
"source": 2
},
{
"begin": 10483,
"end": 10520,
"name": "PUSH [tag]",
"source": 2,
"value": "251"
},
{
"begin": 10483,
"end": 10520,
"name": "JUMPI",
"source": 2
},
{
"begin": 10500,
"end": 10518,
"name": "PUSH [tag]",
"source": 2,
"value": "252"
},
{
"begin": 10500,
"end": 10518,
"name": "PUSH [tag]",
"source": 2,
"value": "129"
},
{
"begin": 10500,
"end": 10518,
"jumpType": "[in]",
"name": "JUMP",
"source": 2
},
{
"begin": 10500,
"end": 10518,
"name": "tag",
"source": 2,
"value": "252"
},
{
"begin": 10500,
"end": 10518,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 10483,
"end": 10520,
"name": "tag",
"source": 2,
"value": "251"
},
{
"begin": 10483,
"end": 10520,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 10333,
"end": 10527,
"name": "SWAP3",
"source": 2
},
{
"begin": 10333,
"end": 10527,
"name": "SWAP2",
"source": 2
},
{
"begin": 10333,
"end": 10527,
"name": "POP",
"source": 2
},
{
"begin": 10333,
"end": 10527,
"name": "POP",
"source": 2
},
{
"begin": 10333,
"end": 10527,
"jumpType": "[out]",
"name": "JUMP",
"source": 2
},
{
"begin": 10533,
"end": 10975,
"name": "tag",
"source": 2,
"value": "82"
},
{
"begin": 10533,
"end": 10975,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 10682,
"end": 10686,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 10720,
"end": 10722,
"name": "PUSH",
"source": 2,
"value": "60"
},
{
"begin": 10709,
"end": 10718,
"name": "DUP3",
"source": 2
},
{
"begin": 10705,
"end": 10723,
"name": "ADD",
"source": 2
},
{
"begin": 10697,
"end": 10723,
"name": "SWAP1",
"source": 2
},
{
"begin": 10697,
"end": 10723,
"name": "POP",
"source": 2
},
{
"begin": 10733,
"end": 10804,
"name": "PUSH [tag]",
"source": 2,
"value": "254"
},
{
"begin": 10801,
"end": 10802,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 10790,
"end": 10799,
"name": "DUP4",
"source": 2
},
{
"begin": 10786,
"end": 10803,
"name": "ADD",
"source": 2
},
{
"begin": 10777,
"end": 10783,
"name": "DUP7",
"source": 2
},
{
"begin": 10733,
"end": 10804,
"name": "PUSH [tag]",
"source": 2,
"value": "130"
},
{
"begin": 10733,
"end": 10804,
"jumpType": "[in]"
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment