Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save kiryuxa-bas/fb3f946b9c11456ef2d0aa3a59db857b to your computer and use it in GitHub Desktop.

Select an option

Save kiryuxa-bas/fb3f946b9c11456ef2d0aa3a59db857b to your computer and use it in GitHub Desktop.
Created using tron-ide: Realtime Tron Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at http://tronide.io/#version=soljson-v0.8.26+commit.733b4d28.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.5.0) (interfaces/draft-IERC6093.sol)
pragma solidity >=0.8.4;
/**
* @dev Standard ERC-20 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.
*/
interface IERC20Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC20InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC20InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
* @param spender Address that may be allowed to operate on tokens without being their owner.
* @param allowance Amount of tokens a `spender` is allowed to operate with.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC20InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `spender` to be approved. Used in approvals.
* @param spender Address that may be allowed to operate on tokens without being their owner.
*/
error ERC20InvalidSpender(address spender);
}
/**
* @dev Standard ERC-721 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.
*/
interface IERC721Errors {
/**
* @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-721.
* Used in balance queries.
* @param owner Address of the current owner of a token.
*/
error ERC721InvalidOwner(address owner);
/**
* @dev Indicates a `tokenId` whose `owner` is the zero address.
* @param tokenId Identifier number of a token.
*/
error ERC721NonexistentToken(uint256 tokenId);
/**
* @dev Indicates an error related to the ownership over a particular token. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param tokenId Identifier number of a token.
* @param owner Address of the current owner of a token.
*/
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC721InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC721InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param tokenId Identifier number of a token.
*/
error ERC721InsufficientApproval(address operator, uint256 tokenId);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC721InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC721InvalidOperator(address operator);
}
/**
* @dev Standard ERC-1155 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.
*/
interface IERC1155Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
* @param tokenId Identifier number of a token.
*/
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC1155InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC1155InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param owner Address of the current owner of a token.
*/
error ERC1155MissingApprovalForAll(address operator, address owner);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC1155InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC1155InvalidOperator(address operator);
/**
* @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.
* Used in batch transfers.
* @param idsLength Length of the array of token identifiers
* @param valuesLength Length of the array of token amounts
*/
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.5.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.20;
import {IERC20} from "./IERC20.sol";
import {IERC20Metadata} from "./extensions/IERC20Metadata.sol";
import {Context} from "../../utils/Context.sol";
import {IERC20Errors} from "../../interfaces/draft-IERC6093.sol";
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
*
* TIP: For a detailed writeup see our guide
* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* The default value of {decimals} is 18. To change this, you should override
* this function so it returns a different value.
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC-20
* applications.
*/
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
mapping(address account => uint256) private _balances;
mapping(address account => mapping(address spender => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* Both values are immutable: they can only be set once during construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the default value returned by this function, unless
* it's overridden.
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual returns (uint8) {
return 18;
}
/// @inheritdoc IERC20
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
/// @inheritdoc IERC20
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `value`.
*/
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
/// @inheritdoc IERC20
function allowance(address owner, address spender) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `value` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Skips emitting an {Approval} event indicating an allowance update. This is not
* required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `value`.
* - the caller must have allowance for ``from``'s tokens of at least
* `value`.
*/
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
/**
* @dev Moves a `value` amount of tokens from `from` to `to`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
/**
* @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
* (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
* this function.
*
* Emits a {Transfer} event.
*/
function _update(address from, address to, uint256 value) internal virtual {
if (from == address(0)) {
// Overflow check required: The rest of the code assumes that totalSupply never overflows
_totalSupply += value;
} else {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
// Overflow not possible: value <= fromBalance <= totalSupply.
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
unchecked {
// Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
_totalSupply -= value;
}
} else {
unchecked {
// Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
_balances[to] += value;
}
}
emit Transfer(from, to, value);
}
/**
* @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
* Relies on the `_update` mechanism
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
/**
* @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.
* Relies on the `_update` mechanism.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead
*/
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
/**
* @dev Sets `value` as the allowance of `spender` over the `owner`'s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*
* Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.
*/
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
/**
* @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.
*
* By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by
* `_spendAllowance` during the `transferFrom` operation sets the flag to false. This saves gas by not emitting any
* `Approval` event during `transferFrom` operations.
*
* Anyone who wishes to continue emitting `Approval` events on the `transferFrom` operation can force the flag to
* true using the following override:
*
* ```solidity
* function _approve(address owner, address spender, uint256 value, bool) internal virtual override {
* super._approve(owner, spender, value, true);
* }
* ```
*
* Requirements are the same as {_approve}.
*/
function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
/**
* @dev Updates `owner`'s allowance for `spender` based on spent `value`.
*
* Does not update the allowance value in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Does not emit an {Approval} event.
*/
function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance < type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(spender, currentAllowance, value);
}
unchecked {
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity >=0.6.2;
import {IERC20} from "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC-20 standard.
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/IERC20.sol)
pragma solidity >=0.4.16;
/**
* @dev Interface of the ERC-20 standard as defined in the ERC.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @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 Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Owner
* @dev Set & change owner
*/
contract Owner {
address private owner;
// event for EVM logging
event OwnerSet(address indexed oldOwner, address indexed newOwner);
// modifier to check if caller is owner
modifier isOwner() {
// If the first argument of 'require' evaluates to 'false', execution terminates and all
// changes to the state and to Ether balances are reverted.
// This used to consume all gas in old EVM versions, but not anymore.
// It is often a good idea to use 'require' to check if functions are called correctly.
// As a second argument, you can also provide an explanation about what went wrong.
require(msg.sender == owner, "Caller is not owner");
_;
}
/**
* @dev Set contract deployer as owner
*/
constructor() {
owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
emit OwnerSet(address(0), owner);
}
/**
* @dev Change owner
* @param newOwner address of new owner
*/
function changeOwner(address newOwner) public isOwner {
emit OwnerSet(owner, newOwner);
owner = newOwner;
}
/**
* @dev Return owner address
* @return address of owner
*/
function getOwner() external view returns (address) {
return owner;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Ballot
* @dev Implements voting process along with vote delegation
*/
contract Ballot {
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
struct Proposal {
// If you can limit the length to a certain number of bytes,
// always use one of bytes1 to bytes32 because they are much cheaper
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
address public chairperson;
mapping(address => Voter) public voters;
Proposal[] public proposals;
/**
* @dev Create a new ballot to choose one of 'proposalNames'.
* @param proposalNames names of proposals
*/
constructor(bytes32[] memory proposalNames) {
chairperson = msg.sender;
voters[chairperson].weight = 1;
for (uint i = 0; i < proposalNames.length; i++) {
// 'Proposal({...})' creates a temporary
// Proposal object and 'proposals.push(...)'
// appends it to the end of 'proposals'.
proposals.push(Proposal({
name: proposalNames[i],
voteCount: 0
}));
}
}
/**
* @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.
* @param voter address of voter
*/
function giveRightToVote(address voter) public {
require(
msg.sender == chairperson,
"Only chairperson can give right to vote."
);
require(
!voters[voter].voted,
"The voter already voted."
);
require(voters[voter].weight == 0);
voters[voter].weight = 1;
}
/**
* @dev Delegate your vote to the voter 'to'.
* @param to address to which vote is delegated
*/
function delegate(address to) public {
Voter storage sender = voters[msg.sender];
require(!sender.voted, "You already voted.");
require(to != msg.sender, "Self-delegation is disallowed.");
while (voters[to].delegate != address(0)) {
to = voters[to].delegate;
// We found a loop in the delegation, not allowed.
require(to != msg.sender, "Found loop in delegation.");
}
sender.voted = true;
sender.delegate = to;
Voter storage delegate_ = voters[to];
if (delegate_.voted) {
// If the delegate already voted,
// directly add to the number of votes
proposals[delegate_.vote].voteCount += sender.weight;
} else {
// If the delegate did not vote yet,
// add to her weight.
delegate_.weight += sender.weight;
}
}
/**
* @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.
* @param proposal index of proposal in the proposals array
*/
function vote(uint proposal) public {
Voter storage sender = voters[msg.sender];
require(sender.weight != 0, "Has no right to vote");
require(!sender.voted, "Already voted.");
sender.voted = true;
sender.vote = proposal;
// If 'proposal' is out of the range of the array,
// this will throw automatically and revert all
// changes.
proposals[proposal].voteCount += sender.weight;
}
/**
* @dev Computes the winning proposal taking all previous votes into account.
* @return winningProposal_ index of winning proposal in the proposals array
*/
function winningProposal() public view
returns (uint winningProposal_)
{
uint winningVoteCount = 0;
for (uint p = 0; p < proposals.length; p++) {
if (proposals[p].voteCount > winningVoteCount) {
winningVoteCount = proposals[p].voteCount;
winningProposal_ = p;
}
}
}
/**
* @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then
* @return winnerName_ the name of the winner
*/
function winnerName() public view
returns (bytes32 winnerName_)
{
winnerName_ = proposals[winningProposal()].name;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract Trc10 {
function TransferTokenTo(address payable toAddress, trcToken id, uint256 amount) public payable {
toAddress.transferToken(amount,id);
}
}
{
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_188": {
"entryPoint": null,
"id": 188,
"parameterSlots": 2,
"returnSlots": 0
},
"@_808": {
"entryPoint": null,
"id": 808,
"parameterSlots": 0,
"returnSlots": 0
},
"@_mint_491": {
"entryPoint": 208,
"id": 491,
"parameterSlots": 2,
"returnSlots": 0
},
"@_update_458": {
"entryPoint": 341,
"id": 458,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1703,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1839,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 1718,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 1854,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1907,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 1026,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 878,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 1788,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 1311,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_address": {
"entryPoint": 1686,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1655,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1152,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 1277,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 1170,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 1448,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 1044,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 978,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 1421,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"identity": {
"entryPoint": 1161,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 1393,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 1743,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 933,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 888,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 1203,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 1059,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 1381,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 1253,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 1071,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 1212,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 1249,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:7000:6",
"nodeType": "YulBlock",
"src": "0:7000:6",
"statements": [
{
"body": {
"nativeSrc": "66:40:6",
"nodeType": "YulBlock",
"src": "66:40:6",
"statements": [
{
"nativeSrc": "77:22:6",
"nodeType": "YulAssignment",
"src": "77:22:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "93:5:6",
"nodeType": "YulIdentifier",
"src": "93:5:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "87:5:6",
"nodeType": "YulIdentifier",
"src": "87:5:6"
},
"nativeSrc": "87:12:6",
"nodeType": "YulFunctionCall",
"src": "87:12:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "77:6:6",
"nodeType": "YulIdentifier",
"src": "77:6:6"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "7:99:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "49:5:6",
"nodeType": "YulTypedName",
"src": "49:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "59:6:6",
"nodeType": "YulTypedName",
"src": "59:6:6",
"type": ""
}
],
"src": "7:99:6"
},
{
"body": {
"nativeSrc": "140:152:6",
"nodeType": "YulBlock",
"src": "140:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "157:1:6",
"nodeType": "YulLiteral",
"src": "157:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "160:77:6",
"nodeType": "YulLiteral",
"src": "160:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "150:6:6",
"nodeType": "YulIdentifier",
"src": "150:6:6"
},
"nativeSrc": "150:88:6",
"nodeType": "YulFunctionCall",
"src": "150:88:6"
},
"nativeSrc": "150:88:6",
"nodeType": "YulExpressionStatement",
"src": "150:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "254:1:6",
"nodeType": "YulLiteral",
"src": "254:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "257:4:6",
"nodeType": "YulLiteral",
"src": "257:4:6",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "247:6:6",
"nodeType": "YulIdentifier",
"src": "247:6:6"
},
"nativeSrc": "247:15:6",
"nodeType": "YulFunctionCall",
"src": "247:15:6"
},
"nativeSrc": "247:15:6",
"nodeType": "YulExpressionStatement",
"src": "247:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "278:1:6",
"nodeType": "YulLiteral",
"src": "278:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "281:4:6",
"nodeType": "YulLiteral",
"src": "281:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "271:6:6",
"nodeType": "YulIdentifier",
"src": "271:6:6"
},
"nativeSrc": "271:15:6",
"nodeType": "YulFunctionCall",
"src": "271:15:6"
},
"nativeSrc": "271:15:6",
"nodeType": "YulExpressionStatement",
"src": "271:15:6"
}
]
},
"name": "panic_error_0x41",
"nativeSrc": "112:180:6",
"nodeType": "YulFunctionDefinition",
"src": "112:180:6"
},
{
"body": {
"nativeSrc": "326:152:6",
"nodeType": "YulBlock",
"src": "326:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "343:1:6",
"nodeType": "YulLiteral",
"src": "343:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "346:77:6",
"nodeType": "YulLiteral",
"src": "346:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "336:6:6",
"nodeType": "YulIdentifier",
"src": "336:6:6"
},
"nativeSrc": "336:88:6",
"nodeType": "YulFunctionCall",
"src": "336:88:6"
},
"nativeSrc": "336:88:6",
"nodeType": "YulExpressionStatement",
"src": "336:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "440:1:6",
"nodeType": "YulLiteral",
"src": "440:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "443:4:6",
"nodeType": "YulLiteral",
"src": "443:4:6",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "433:6:6",
"nodeType": "YulIdentifier",
"src": "433:6:6"
},
"nativeSrc": "433:15:6",
"nodeType": "YulFunctionCall",
"src": "433:15:6"
},
"nativeSrc": "433:15:6",
"nodeType": "YulExpressionStatement",
"src": "433:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "464:1:6",
"nodeType": "YulLiteral",
"src": "464:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "467:4:6",
"nodeType": "YulLiteral",
"src": "467:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "457:6:6",
"nodeType": "YulIdentifier",
"src": "457:6:6"
},
"nativeSrc": "457:15:6",
"nodeType": "YulFunctionCall",
"src": "457:15:6"
},
"nativeSrc": "457:15:6",
"nodeType": "YulExpressionStatement",
"src": "457:15:6"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "298:180:6",
"nodeType": "YulFunctionDefinition",
"src": "298:180:6"
},
{
"body": {
"nativeSrc": "535:269:6",
"nodeType": "YulBlock",
"src": "535:269:6",
"statements": [
{
"nativeSrc": "545:22:6",
"nodeType": "YulAssignment",
"src": "545:22:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "559:4:6",
"nodeType": "YulIdentifier",
"src": "559:4:6"
},
{
"kind": "number",
"nativeSrc": "565:1:6",
"nodeType": "YulLiteral",
"src": "565:1:6",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "555:3:6",
"nodeType": "YulIdentifier",
"src": "555:3:6"
},
"nativeSrc": "555:12:6",
"nodeType": "YulFunctionCall",
"src": "555:12:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "545:6:6",
"nodeType": "YulIdentifier",
"src": "545:6:6"
}
]
},
{
"nativeSrc": "576:38:6",
"nodeType": "YulVariableDeclaration",
"src": "576:38:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "606:4:6",
"nodeType": "YulIdentifier",
"src": "606:4:6"
},
{
"kind": "number",
"nativeSrc": "612:1:6",
"nodeType": "YulLiteral",
"src": "612:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "602:3:6",
"nodeType": "YulIdentifier",
"src": "602:3:6"
},
"nativeSrc": "602:12:6",
"nodeType": "YulFunctionCall",
"src": "602:12:6"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "580:18:6",
"nodeType": "YulTypedName",
"src": "580:18:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "653:51:6",
"nodeType": "YulBlock",
"src": "653:51:6",
"statements": [
{
"nativeSrc": "667:27:6",
"nodeType": "YulAssignment",
"src": "667:27:6",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "681:6:6",
"nodeType": "YulIdentifier",
"src": "681:6:6"
},
{
"kind": "number",
"nativeSrc": "689:4:6",
"nodeType": "YulLiteral",
"src": "689:4:6",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "677:3:6",
"nodeType": "YulIdentifier",
"src": "677:3:6"
},
"nativeSrc": "677:17:6",
"nodeType": "YulFunctionCall",
"src": "677:17:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "667:6:6",
"nodeType": "YulIdentifier",
"src": "667:6:6"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "633:18:6",
"nodeType": "YulIdentifier",
"src": "633:18:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "626:6:6",
"nodeType": "YulIdentifier",
"src": "626:6:6"
},
"nativeSrc": "626:26:6",
"nodeType": "YulFunctionCall",
"src": "626:26:6"
},
"nativeSrc": "623:81:6",
"nodeType": "YulIf",
"src": "623:81:6"
},
{
"body": {
"nativeSrc": "756:42:6",
"nodeType": "YulBlock",
"src": "756:42:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "770:16:6",
"nodeType": "YulIdentifier",
"src": "770:16:6"
},
"nativeSrc": "770:18:6",
"nodeType": "YulFunctionCall",
"src": "770:18:6"
},
"nativeSrc": "770:18:6",
"nodeType": "YulExpressionStatement",
"src": "770:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "720:18:6",
"nodeType": "YulIdentifier",
"src": "720:18:6"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "743:6:6",
"nodeType": "YulIdentifier",
"src": "743:6:6"
},
{
"kind": "number",
"nativeSrc": "751:2:6",
"nodeType": "YulLiteral",
"src": "751:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "740:2:6",
"nodeType": "YulIdentifier",
"src": "740:2:6"
},
"nativeSrc": "740:14:6",
"nodeType": "YulFunctionCall",
"src": "740:14:6"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "717:2:6",
"nodeType": "YulIdentifier",
"src": "717:2:6"
},
"nativeSrc": "717:38:6",
"nodeType": "YulFunctionCall",
"src": "717:38:6"
},
"nativeSrc": "714:84:6",
"nodeType": "YulIf",
"src": "714:84:6"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "484:320:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "519:4:6",
"nodeType": "YulTypedName",
"src": "519:4:6",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "528:6:6",
"nodeType": "YulTypedName",
"src": "528:6:6",
"type": ""
}
],
"src": "484:320:6"
},
{
"body": {
"nativeSrc": "864:87:6",
"nodeType": "YulBlock",
"src": "864:87:6",
"statements": [
{
"nativeSrc": "874:11:6",
"nodeType": "YulAssignment",
"src": "874:11:6",
"value": {
"name": "ptr",
"nativeSrc": "882:3:6",
"nodeType": "YulIdentifier",
"src": "882:3:6"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "874:4:6",
"nodeType": "YulIdentifier",
"src": "874:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "902:1:6",
"nodeType": "YulLiteral",
"src": "902:1:6",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nativeSrc": "905:3:6",
"nodeType": "YulIdentifier",
"src": "905:3:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "895:6:6",
"nodeType": "YulIdentifier",
"src": "895:6:6"
},
"nativeSrc": "895:14:6",
"nodeType": "YulFunctionCall",
"src": "895:14:6"
},
"nativeSrc": "895:14:6",
"nodeType": "YulExpressionStatement",
"src": "895:14:6"
},
{
"nativeSrc": "918:26:6",
"nodeType": "YulAssignment",
"src": "918:26:6",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "936:1:6",
"nodeType": "YulLiteral",
"src": "936:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "939:4:6",
"nodeType": "YulLiteral",
"src": "939:4:6",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nativeSrc": "926:9:6",
"nodeType": "YulIdentifier",
"src": "926:9:6"
},
"nativeSrc": "926:18:6",
"nodeType": "YulFunctionCall",
"src": "926:18:6"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "918:4:6",
"nodeType": "YulIdentifier",
"src": "918:4:6"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nativeSrc": "810:141:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "851:3:6",
"nodeType": "YulTypedName",
"src": "851:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "859:4:6",
"nodeType": "YulTypedName",
"src": "859:4:6",
"type": ""
}
],
"src": "810:141:6"
},
{
"body": {
"nativeSrc": "1001:49:6",
"nodeType": "YulBlock",
"src": "1001:49:6",
"statements": [
{
"nativeSrc": "1011:33:6",
"nodeType": "YulAssignment",
"src": "1011:33:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1029:5:6",
"nodeType": "YulIdentifier",
"src": "1029:5:6"
},
{
"kind": "number",
"nativeSrc": "1036:2:6",
"nodeType": "YulLiteral",
"src": "1036:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1025:3:6",
"nodeType": "YulIdentifier",
"src": "1025:3:6"
},
"nativeSrc": "1025:14:6",
"nodeType": "YulFunctionCall",
"src": "1025:14:6"
},
{
"kind": "number",
"nativeSrc": "1041:2:6",
"nodeType": "YulLiteral",
"src": "1041:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nativeSrc": "1021:3:6",
"nodeType": "YulIdentifier",
"src": "1021:3:6"
},
"nativeSrc": "1021:23:6",
"nodeType": "YulFunctionCall",
"src": "1021:23:6"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "1011:6:6",
"nodeType": "YulIdentifier",
"src": "1011:6:6"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nativeSrc": "957:93:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "984:5:6",
"nodeType": "YulTypedName",
"src": "984:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "994:6:6",
"nodeType": "YulTypedName",
"src": "994:6:6",
"type": ""
}
],
"src": "957:93:6"
},
{
"body": {
"nativeSrc": "1109:54:6",
"nodeType": "YulBlock",
"src": "1109:54:6",
"statements": [
{
"nativeSrc": "1119:37:6",
"nodeType": "YulAssignment",
"src": "1119:37:6",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "1144:4:6",
"nodeType": "YulIdentifier",
"src": "1144:4:6"
},
{
"name": "value",
"nativeSrc": "1150:5:6",
"nodeType": "YulIdentifier",
"src": "1150:5:6"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "1140:3:6",
"nodeType": "YulIdentifier",
"src": "1140:3:6"
},
"nativeSrc": "1140:16:6",
"nodeType": "YulFunctionCall",
"src": "1140:16:6"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "1119:8:6",
"nodeType": "YulIdentifier",
"src": "1119:8:6"
}
]
}
]
},
"name": "shift_left_dynamic",
"nativeSrc": "1056:107:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "1084:4:6",
"nodeType": "YulTypedName",
"src": "1084:4:6",
"type": ""
},
{
"name": "value",
"nativeSrc": "1090:5:6",
"nodeType": "YulTypedName",
"src": "1090:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "1100:8:6",
"nodeType": "YulTypedName",
"src": "1100:8:6",
"type": ""
}
],
"src": "1056:107:6"
},
{
"body": {
"nativeSrc": "1245:317:6",
"nodeType": "YulBlock",
"src": "1245:317:6",
"statements": [
{
"nativeSrc": "1255:35:6",
"nodeType": "YulVariableDeclaration",
"src": "1255:35:6",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nativeSrc": "1276:10:6",
"nodeType": "YulIdentifier",
"src": "1276:10:6"
},
{
"kind": "number",
"nativeSrc": "1288:1:6",
"nodeType": "YulLiteral",
"src": "1288:1:6",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "1272:3:6",
"nodeType": "YulIdentifier",
"src": "1272:3:6"
},
"nativeSrc": "1272:18:6",
"nodeType": "YulFunctionCall",
"src": "1272:18:6"
},
"variables": [
{
"name": "shiftBits",
"nativeSrc": "1259:9:6",
"nodeType": "YulTypedName",
"src": "1259:9:6",
"type": ""
}
]
},
{
"nativeSrc": "1299:109:6",
"nodeType": "YulVariableDeclaration",
"src": "1299:109:6",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "1330:9:6",
"nodeType": "YulIdentifier",
"src": "1330:9:6"
},
{
"kind": "number",
"nativeSrc": "1341:66:6",
"nodeType": "YulLiteral",
"src": "1341:66:6",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "1311:18:6",
"nodeType": "YulIdentifier",
"src": "1311:18:6"
},
"nativeSrc": "1311:97:6",
"nodeType": "YulFunctionCall",
"src": "1311:97:6"
},
"variables": [
{
"name": "mask",
"nativeSrc": "1303:4:6",
"nodeType": "YulTypedName",
"src": "1303:4:6",
"type": ""
}
]
},
{
"nativeSrc": "1417:51:6",
"nodeType": "YulAssignment",
"src": "1417:51:6",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "1448:9:6",
"nodeType": "YulIdentifier",
"src": "1448:9:6"
},
{
"name": "toInsert",
"nativeSrc": "1459:8:6",
"nodeType": "YulIdentifier",
"src": "1459:8:6"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "1429:18:6",
"nodeType": "YulIdentifier",
"src": "1429:18:6"
},
"nativeSrc": "1429:39:6",
"nodeType": "YulFunctionCall",
"src": "1429:39:6"
},
"variableNames": [
{
"name": "toInsert",
"nativeSrc": "1417:8:6",
"nodeType": "YulIdentifier",
"src": "1417:8:6"
}
]
},
{
"nativeSrc": "1477:30:6",
"nodeType": "YulAssignment",
"src": "1477:30:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1490:5:6",
"nodeType": "YulIdentifier",
"src": "1490:5:6"
},
{
"arguments": [
{
"name": "mask",
"nativeSrc": "1501:4:6",
"nodeType": "YulIdentifier",
"src": "1501:4:6"
}
],
"functionName": {
"name": "not",
"nativeSrc": "1497:3:6",
"nodeType": "YulIdentifier",
"src": "1497:3:6"
},
"nativeSrc": "1497:9:6",
"nodeType": "YulFunctionCall",
"src": "1497:9:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1486:3:6",
"nodeType": "YulIdentifier",
"src": "1486:3:6"
},
"nativeSrc": "1486:21:6",
"nodeType": "YulFunctionCall",
"src": "1486:21:6"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "1477:5:6",
"nodeType": "YulIdentifier",
"src": "1477:5:6"
}
]
},
{
"nativeSrc": "1516:40:6",
"nodeType": "YulAssignment",
"src": "1516:40:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1529:5:6",
"nodeType": "YulIdentifier",
"src": "1529:5:6"
},
{
"arguments": [
{
"name": "toInsert",
"nativeSrc": "1540:8:6",
"nodeType": "YulIdentifier",
"src": "1540:8:6"
},
{
"name": "mask",
"nativeSrc": "1550:4:6",
"nodeType": "YulIdentifier",
"src": "1550:4:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1536:3:6",
"nodeType": "YulIdentifier",
"src": "1536:3:6"
},
"nativeSrc": "1536:19:6",
"nodeType": "YulFunctionCall",
"src": "1536:19:6"
}
],
"functionName": {
"name": "or",
"nativeSrc": "1526:2:6",
"nodeType": "YulIdentifier",
"src": "1526:2:6"
},
"nativeSrc": "1526:30:6",
"nodeType": "YulFunctionCall",
"src": "1526:30:6"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "1516:6:6",
"nodeType": "YulIdentifier",
"src": "1516:6:6"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nativeSrc": "1169:393:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1206:5:6",
"nodeType": "YulTypedName",
"src": "1206:5:6",
"type": ""
},
{
"name": "shiftBytes",
"nativeSrc": "1213:10:6",
"nodeType": "YulTypedName",
"src": "1213:10:6",
"type": ""
},
{
"name": "toInsert",
"nativeSrc": "1225:8:6",
"nodeType": "YulTypedName",
"src": "1225:8:6",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "1238:6:6",
"nodeType": "YulTypedName",
"src": "1238:6:6",
"type": ""
}
],
"src": "1169:393:6"
},
{
"body": {
"nativeSrc": "1613:32:6",
"nodeType": "YulBlock",
"src": "1613:32:6",
"statements": [
{
"nativeSrc": "1623:16:6",
"nodeType": "YulAssignment",
"src": "1623:16:6",
"value": {
"name": "value",
"nativeSrc": "1634:5:6",
"nodeType": "YulIdentifier",
"src": "1634:5:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1623:7:6",
"nodeType": "YulIdentifier",
"src": "1623:7:6"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "1568:77:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1595:5:6",
"nodeType": "YulTypedName",
"src": "1595:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1605:7:6",
"nodeType": "YulTypedName",
"src": "1605:7:6",
"type": ""
}
],
"src": "1568:77:6"
},
{
"body": {
"nativeSrc": "1683:28:6",
"nodeType": "YulBlock",
"src": "1683:28:6",
"statements": [
{
"nativeSrc": "1693:12:6",
"nodeType": "YulAssignment",
"src": "1693:12:6",
"value": {
"name": "value",
"nativeSrc": "1700:5:6",
"nodeType": "YulIdentifier",
"src": "1700:5:6"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "1693:3:6",
"nodeType": "YulIdentifier",
"src": "1693:3:6"
}
]
}
]
},
"name": "identity",
"nativeSrc": "1651:60:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1669:5:6",
"nodeType": "YulTypedName",
"src": "1669:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "1679:3:6",
"nodeType": "YulTypedName",
"src": "1679:3:6",
"type": ""
}
],
"src": "1651:60:6"
},
{
"body": {
"nativeSrc": "1777:82:6",
"nodeType": "YulBlock",
"src": "1777:82:6",
"statements": [
{
"nativeSrc": "1787:66:6",
"nodeType": "YulAssignment",
"src": "1787:66:6",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1845:5:6",
"nodeType": "YulIdentifier",
"src": "1845:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "1827:17:6",
"nodeType": "YulIdentifier",
"src": "1827:17:6"
},
"nativeSrc": "1827:24:6",
"nodeType": "YulFunctionCall",
"src": "1827:24:6"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "1818:8:6",
"nodeType": "YulIdentifier",
"src": "1818:8:6"
},
"nativeSrc": "1818:34:6",
"nodeType": "YulFunctionCall",
"src": "1818:34:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "1800:17:6",
"nodeType": "YulIdentifier",
"src": "1800:17:6"
},
"nativeSrc": "1800:53:6",
"nodeType": "YulFunctionCall",
"src": "1800:53:6"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "1787:9:6",
"nodeType": "YulIdentifier",
"src": "1787:9:6"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "1717:142:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1757:5:6",
"nodeType": "YulTypedName",
"src": "1757:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "1767:9:6",
"nodeType": "YulTypedName",
"src": "1767:9:6",
"type": ""
}
],
"src": "1717:142:6"
},
{
"body": {
"nativeSrc": "1912:28:6",
"nodeType": "YulBlock",
"src": "1912:28:6",
"statements": [
{
"nativeSrc": "1922:12:6",
"nodeType": "YulAssignment",
"src": "1922:12:6",
"value": {
"name": "value",
"nativeSrc": "1929:5:6",
"nodeType": "YulIdentifier",
"src": "1929:5:6"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "1922:3:6",
"nodeType": "YulIdentifier",
"src": "1922:3:6"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nativeSrc": "1865:75:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1898:5:6",
"nodeType": "YulTypedName",
"src": "1898:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "1908:3:6",
"nodeType": "YulTypedName",
"src": "1908:3:6",
"type": ""
}
],
"src": "1865:75:6"
},
{
"body": {
"nativeSrc": "2022:193:6",
"nodeType": "YulBlock",
"src": "2022:193:6",
"statements": [
{
"nativeSrc": "2032:63:6",
"nodeType": "YulVariableDeclaration",
"src": "2032:63:6",
"value": {
"arguments": [
{
"name": "value_0",
"nativeSrc": "2087:7:6",
"nodeType": "YulIdentifier",
"src": "2087:7:6"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "2056:30:6",
"nodeType": "YulIdentifier",
"src": "2056:30:6"
},
"nativeSrc": "2056:39:6",
"nodeType": "YulFunctionCall",
"src": "2056:39:6"
},
"variables": [
{
"name": "convertedValue_0",
"nativeSrc": "2036:16:6",
"nodeType": "YulTypedName",
"src": "2036:16:6",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "2111:4:6",
"nodeType": "YulIdentifier",
"src": "2111:4:6"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "2151:4:6",
"nodeType": "YulIdentifier",
"src": "2151:4:6"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "2145:5:6",
"nodeType": "YulIdentifier",
"src": "2145:5:6"
},
"nativeSrc": "2145:11:6",
"nodeType": "YulFunctionCall",
"src": "2145:11:6"
},
{
"name": "offset",
"nativeSrc": "2158:6:6",
"nodeType": "YulIdentifier",
"src": "2158:6:6"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nativeSrc": "2190:16:6",
"nodeType": "YulIdentifier",
"src": "2190:16:6"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nativeSrc": "2166:23:6",
"nodeType": "YulIdentifier",
"src": "2166:23:6"
},
"nativeSrc": "2166:41:6",
"nodeType": "YulFunctionCall",
"src": "2166:41:6"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nativeSrc": "2117:27:6",
"nodeType": "YulIdentifier",
"src": "2117:27:6"
},
"nativeSrc": "2117:91:6",
"nodeType": "YulFunctionCall",
"src": "2117:91:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "2104:6:6",
"nodeType": "YulIdentifier",
"src": "2104:6:6"
},
"nativeSrc": "2104:105:6",
"nodeType": "YulFunctionCall",
"src": "2104:105:6"
},
"nativeSrc": "2104:105:6",
"nodeType": "YulExpressionStatement",
"src": "2104:105:6"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "1946:269:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "1999:4:6",
"nodeType": "YulTypedName",
"src": "1999:4:6",
"type": ""
},
{
"name": "offset",
"nativeSrc": "2005:6:6",
"nodeType": "YulTypedName",
"src": "2005:6:6",
"type": ""
},
{
"name": "value_0",
"nativeSrc": "2013:7:6",
"nodeType": "YulTypedName",
"src": "2013:7:6",
"type": ""
}
],
"src": "1946:269:6"
},
{
"body": {
"nativeSrc": "2270:24:6",
"nodeType": "YulBlock",
"src": "2270:24:6",
"statements": [
{
"nativeSrc": "2280:8:6",
"nodeType": "YulAssignment",
"src": "2280:8:6",
"value": {
"kind": "number",
"nativeSrc": "2287:1:6",
"nodeType": "YulLiteral",
"src": "2287:1:6",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "2280:3:6",
"nodeType": "YulIdentifier",
"src": "2280:3:6"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "2221:73:6",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nativeSrc": "2266:3:6",
"nodeType": "YulTypedName",
"src": "2266:3:6",
"type": ""
}
],
"src": "2221:73:6"
},
{
"body": {
"nativeSrc": "2353:136:6",
"nodeType": "YulBlock",
"src": "2353:136:6",
"statements": [
{
"nativeSrc": "2363:46:6",
"nodeType": "YulVariableDeclaration",
"src": "2363:46:6",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "2377:30:6",
"nodeType": "YulIdentifier",
"src": "2377:30:6"
},
"nativeSrc": "2377:32:6",
"nodeType": "YulFunctionCall",
"src": "2377:32:6"
},
"variables": [
{
"name": "zero_0",
"nativeSrc": "2367:6:6",
"nodeType": "YulTypedName",
"src": "2367:6:6",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "2462:4:6",
"nodeType": "YulIdentifier",
"src": "2462:4:6"
},
{
"name": "offset",
"nativeSrc": "2468:6:6",
"nodeType": "YulIdentifier",
"src": "2468:6:6"
},
{
"name": "zero_0",
"nativeSrc": "2476:6:6",
"nodeType": "YulIdentifier",
"src": "2476:6:6"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "2418:43:6",
"nodeType": "YulIdentifier",
"src": "2418:43:6"
},
"nativeSrc": "2418:65:6",
"nodeType": "YulFunctionCall",
"src": "2418:65:6"
},
"nativeSrc": "2418:65:6",
"nodeType": "YulExpressionStatement",
"src": "2418:65:6"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "2300:189:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "2339:4:6",
"nodeType": "YulTypedName",
"src": "2339:4:6",
"type": ""
},
{
"name": "offset",
"nativeSrc": "2345:6:6",
"nodeType": "YulTypedName",
"src": "2345:6:6",
"type": ""
}
],
"src": "2300:189:6"
},
{
"body": {
"nativeSrc": "2545:136:6",
"nodeType": "YulBlock",
"src": "2545:136:6",
"statements": [
{
"body": {
"nativeSrc": "2612:63:6",
"nodeType": "YulBlock",
"src": "2612:63:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nativeSrc": "2656:5:6",
"nodeType": "YulIdentifier",
"src": "2656:5:6"
},
{
"kind": "number",
"nativeSrc": "2663:1:6",
"nodeType": "YulLiteral",
"src": "2663:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "2626:29:6",
"nodeType": "YulIdentifier",
"src": "2626:29:6"
},
"nativeSrc": "2626:39:6",
"nodeType": "YulFunctionCall",
"src": "2626:39:6"
},
"nativeSrc": "2626:39:6",
"nodeType": "YulExpressionStatement",
"src": "2626:39:6"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nativeSrc": "2565:5:6",
"nodeType": "YulIdentifier",
"src": "2565:5:6"
},
{
"name": "end",
"nativeSrc": "2572:3:6",
"nodeType": "YulIdentifier",
"src": "2572:3:6"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "2562:2:6",
"nodeType": "YulIdentifier",
"src": "2562:2:6"
},
"nativeSrc": "2562:14:6",
"nodeType": "YulFunctionCall",
"src": "2562:14:6"
},
"nativeSrc": "2555:120:6",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "2577:26:6",
"nodeType": "YulBlock",
"src": "2577:26:6",
"statements": [
{
"nativeSrc": "2579:22:6",
"nodeType": "YulAssignment",
"src": "2579:22:6",
"value": {
"arguments": [
{
"name": "start",
"nativeSrc": "2592:5:6",
"nodeType": "YulIdentifier",
"src": "2592:5:6"
},
{
"kind": "number",
"nativeSrc": "2599:1:6",
"nodeType": "YulLiteral",
"src": "2599:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2588:3:6",
"nodeType": "YulIdentifier",
"src": "2588:3:6"
},
"nativeSrc": "2588:13:6",
"nodeType": "YulFunctionCall",
"src": "2588:13:6"
},
"variableNames": [
{
"name": "start",
"nativeSrc": "2579:5:6",
"nodeType": "YulIdentifier",
"src": "2579:5:6"
}
]
}
]
},
"pre": {
"nativeSrc": "2559:2:6",
"nodeType": "YulBlock",
"src": "2559:2:6",
"statements": []
},
"src": "2555:120:6"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "2495:186:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nativeSrc": "2533:5:6",
"nodeType": "YulTypedName",
"src": "2533:5:6",
"type": ""
},
{
"name": "end",
"nativeSrc": "2540:3:6",
"nodeType": "YulTypedName",
"src": "2540:3:6",
"type": ""
}
],
"src": "2495:186:6"
},
{
"body": {
"nativeSrc": "2766:464:6",
"nodeType": "YulBlock",
"src": "2766:464:6",
"statements": [
{
"body": {
"nativeSrc": "2792:431:6",
"nodeType": "YulBlock",
"src": "2792:431:6",
"statements": [
{
"nativeSrc": "2806:54:6",
"nodeType": "YulVariableDeclaration",
"src": "2806:54:6",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "2854:5:6",
"nodeType": "YulIdentifier",
"src": "2854:5:6"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "2822:31:6",
"nodeType": "YulIdentifier",
"src": "2822:31:6"
},
"nativeSrc": "2822:38:6",
"nodeType": "YulFunctionCall",
"src": "2822:38:6"
},
"variables": [
{
"name": "dataArea",
"nativeSrc": "2810:8:6",
"nodeType": "YulTypedName",
"src": "2810:8:6",
"type": ""
}
]
},
{
"nativeSrc": "2873:63:6",
"nodeType": "YulVariableDeclaration",
"src": "2873:63:6",
"value": {
"arguments": [
{
"name": "dataArea",
"nativeSrc": "2896:8:6",
"nodeType": "YulIdentifier",
"src": "2896:8:6"
},
{
"arguments": [
{
"name": "startIndex",
"nativeSrc": "2924:10:6",
"nodeType": "YulIdentifier",
"src": "2924:10:6"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "2906:17:6",
"nodeType": "YulIdentifier",
"src": "2906:17:6"
},
"nativeSrc": "2906:29:6",
"nodeType": "YulFunctionCall",
"src": "2906:29:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2892:3:6",
"nodeType": "YulIdentifier",
"src": "2892:3:6"
},
"nativeSrc": "2892:44:6",
"nodeType": "YulFunctionCall",
"src": "2892:44:6"
},
"variables": [
{
"name": "deleteStart",
"nativeSrc": "2877:11:6",
"nodeType": "YulTypedName",
"src": "2877:11:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "3093:27:6",
"nodeType": "YulBlock",
"src": "3093:27:6",
"statements": [
{
"nativeSrc": "3095:23:6",
"nodeType": "YulAssignment",
"src": "3095:23:6",
"value": {
"name": "dataArea",
"nativeSrc": "3110:8:6",
"nodeType": "YulIdentifier",
"src": "3110:8:6"
},
"variableNames": [
{
"name": "deleteStart",
"nativeSrc": "3095:11:6",
"nodeType": "YulIdentifier",
"src": "3095:11:6"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nativeSrc": "3077:10:6",
"nodeType": "YulIdentifier",
"src": "3077:10:6"
},
{
"kind": "number",
"nativeSrc": "3089:2:6",
"nodeType": "YulLiteral",
"src": "3089:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "3074:2:6",
"nodeType": "YulIdentifier",
"src": "3074:2:6"
},
"nativeSrc": "3074:18:6",
"nodeType": "YulFunctionCall",
"src": "3074:18:6"
},
"nativeSrc": "3071:49:6",
"nodeType": "YulIf",
"src": "3071:49:6"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nativeSrc": "3162:11:6",
"nodeType": "YulIdentifier",
"src": "3162:11:6"
},
{
"arguments": [
{
"name": "dataArea",
"nativeSrc": "3179:8:6",
"nodeType": "YulIdentifier",
"src": "3179:8:6"
},
{
"arguments": [
{
"name": "len",
"nativeSrc": "3207:3:6",
"nodeType": "YulIdentifier",
"src": "3207:3:6"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "3189:17:6",
"nodeType": "YulIdentifier",
"src": "3189:17:6"
},
"nativeSrc": "3189:22:6",
"nodeType": "YulFunctionCall",
"src": "3189:22:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3175:3:6",
"nodeType": "YulIdentifier",
"src": "3175:3:6"
},
"nativeSrc": "3175:37:6",
"nodeType": "YulFunctionCall",
"src": "3175:37:6"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "3133:28:6",
"nodeType": "YulIdentifier",
"src": "3133:28:6"
},
"nativeSrc": "3133:80:6",
"nodeType": "YulFunctionCall",
"src": "3133:80:6"
},
"nativeSrc": "3133:80:6",
"nodeType": "YulExpressionStatement",
"src": "3133:80:6"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nativeSrc": "2783:3:6",
"nodeType": "YulIdentifier",
"src": "2783:3:6"
},
{
"kind": "number",
"nativeSrc": "2788:2:6",
"nodeType": "YulLiteral",
"src": "2788:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "2780:2:6",
"nodeType": "YulIdentifier",
"src": "2780:2:6"
},
"nativeSrc": "2780:11:6",
"nodeType": "YulFunctionCall",
"src": "2780:11:6"
},
"nativeSrc": "2777:446:6",
"nodeType": "YulIf",
"src": "2777:446:6"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "2687:543:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nativeSrc": "2742:5:6",
"nodeType": "YulTypedName",
"src": "2742:5:6",
"type": ""
},
{
"name": "len",
"nativeSrc": "2749:3:6",
"nodeType": "YulTypedName",
"src": "2749:3:6",
"type": ""
},
{
"name": "startIndex",
"nativeSrc": "2754:10:6",
"nodeType": "YulTypedName",
"src": "2754:10:6",
"type": ""
}
],
"src": "2687:543:6"
},
{
"body": {
"nativeSrc": "3299:54:6",
"nodeType": "YulBlock",
"src": "3299:54:6",
"statements": [
{
"nativeSrc": "3309:37:6",
"nodeType": "YulAssignment",
"src": "3309:37:6",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "3334:4:6",
"nodeType": "YulIdentifier",
"src": "3334:4:6"
},
{
"name": "value",
"nativeSrc": "3340:5:6",
"nodeType": "YulIdentifier",
"src": "3340:5:6"
}
],
"functionName": {
"name": "shr",
"nativeSrc": "3330:3:6",
"nodeType": "YulIdentifier",
"src": "3330:3:6"
},
"nativeSrc": "3330:16:6",
"nodeType": "YulFunctionCall",
"src": "3330:16:6"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "3309:8:6",
"nodeType": "YulIdentifier",
"src": "3309:8:6"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "3236:117:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "3274:4:6",
"nodeType": "YulTypedName",
"src": "3274:4:6",
"type": ""
},
{
"name": "value",
"nativeSrc": "3280:5:6",
"nodeType": "YulTypedName",
"src": "3280:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "3290:8:6",
"nodeType": "YulTypedName",
"src": "3290:8:6",
"type": ""
}
],
"src": "3236:117:6"
},
{
"body": {
"nativeSrc": "3410:118:6",
"nodeType": "YulBlock",
"src": "3410:118:6",
"statements": [
{
"nativeSrc": "3420:68:6",
"nodeType": "YulVariableDeclaration",
"src": "3420:68:6",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nativeSrc": "3469:1:6",
"nodeType": "YulLiteral",
"src": "3469:1:6",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nativeSrc": "3472:5:6",
"nodeType": "YulIdentifier",
"src": "3472:5:6"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "3465:3:6",
"nodeType": "YulIdentifier",
"src": "3465:3:6"
},
"nativeSrc": "3465:13:6",
"nodeType": "YulFunctionCall",
"src": "3465:13:6"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "3484:1:6",
"nodeType": "YulLiteral",
"src": "3484:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nativeSrc": "3480:3:6",
"nodeType": "YulIdentifier",
"src": "3480:3:6"
},
"nativeSrc": "3480:6:6",
"nodeType": "YulFunctionCall",
"src": "3480:6:6"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "3436:28:6",
"nodeType": "YulIdentifier",
"src": "3436:28:6"
},
"nativeSrc": "3436:51:6",
"nodeType": "YulFunctionCall",
"src": "3436:51:6"
}
],
"functionName": {
"name": "not",
"nativeSrc": "3432:3:6",
"nodeType": "YulIdentifier",
"src": "3432:3:6"
},
"nativeSrc": "3432:56:6",
"nodeType": "YulFunctionCall",
"src": "3432:56:6"
},
"variables": [
{
"name": "mask",
"nativeSrc": "3424:4:6",
"nodeType": "YulTypedName",
"src": "3424:4:6",
"type": ""
}
]
},
{
"nativeSrc": "3497:25:6",
"nodeType": "YulAssignment",
"src": "3497:25:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "3511:4:6",
"nodeType": "YulIdentifier",
"src": "3511:4:6"
},
{
"name": "mask",
"nativeSrc": "3517:4:6",
"nodeType": "YulIdentifier",
"src": "3517:4:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "3507:3:6",
"nodeType": "YulIdentifier",
"src": "3507:3:6"
},
"nativeSrc": "3507:15:6",
"nodeType": "YulFunctionCall",
"src": "3507:15:6"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "3497:6:6",
"nodeType": "YulIdentifier",
"src": "3497:6:6"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nativeSrc": "3359:169:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "3387:4:6",
"nodeType": "YulTypedName",
"src": "3387:4:6",
"type": ""
},
{
"name": "bytes",
"nativeSrc": "3393:5:6",
"nodeType": "YulTypedName",
"src": "3393:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "3403:6:6",
"nodeType": "YulTypedName",
"src": "3403:6:6",
"type": ""
}
],
"src": "3359:169:6"
},
{
"body": {
"nativeSrc": "3614:214:6",
"nodeType": "YulBlock",
"src": "3614:214:6",
"statements": [
{
"nativeSrc": "3747:37:6",
"nodeType": "YulAssignment",
"src": "3747:37:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "3774:4:6",
"nodeType": "YulIdentifier",
"src": "3774:4:6"
},
{
"name": "len",
"nativeSrc": "3780:3:6",
"nodeType": "YulIdentifier",
"src": "3780:3:6"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "3755:18:6",
"nodeType": "YulIdentifier",
"src": "3755:18:6"
},
"nativeSrc": "3755:29:6",
"nodeType": "YulFunctionCall",
"src": "3755:29:6"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "3747:4:6",
"nodeType": "YulIdentifier",
"src": "3747:4:6"
}
]
},
{
"nativeSrc": "3793:29:6",
"nodeType": "YulAssignment",
"src": "3793:29:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "3804:4:6",
"nodeType": "YulIdentifier",
"src": "3804:4:6"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "3814:1:6",
"nodeType": "YulLiteral",
"src": "3814:1:6",
"type": "",
"value": "2"
},
{
"name": "len",
"nativeSrc": "3817:3:6",
"nodeType": "YulIdentifier",
"src": "3817:3:6"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "3810:3:6",
"nodeType": "YulIdentifier",
"src": "3810:3:6"
},
"nativeSrc": "3810:11:6",
"nodeType": "YulFunctionCall",
"src": "3810:11:6"
}
],
"functionName": {
"name": "or",
"nativeSrc": "3801:2:6",
"nodeType": "YulIdentifier",
"src": "3801:2:6"
},
"nativeSrc": "3801:21:6",
"nodeType": "YulFunctionCall",
"src": "3801:21:6"
},
"variableNames": [
{
"name": "used",
"nativeSrc": "3793:4:6",
"nodeType": "YulIdentifier",
"src": "3793:4:6"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "3533:295:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "3595:4:6",
"nodeType": "YulTypedName",
"src": "3595:4:6",
"type": ""
},
{
"name": "len",
"nativeSrc": "3601:3:6",
"nodeType": "YulTypedName",
"src": "3601:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nativeSrc": "3609:4:6",
"nodeType": "YulTypedName",
"src": "3609:4:6",
"type": ""
}
],
"src": "3533:295:6"
},
{
"body": {
"nativeSrc": "3925:1303:6",
"nodeType": "YulBlock",
"src": "3925:1303:6",
"statements": [
{
"nativeSrc": "3936:51:6",
"nodeType": "YulVariableDeclaration",
"src": "3936:51:6",
"value": {
"arguments": [
{
"name": "src",
"nativeSrc": "3983:3:6",
"nodeType": "YulIdentifier",
"src": "3983:3:6"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "3950:32:6",
"nodeType": "YulIdentifier",
"src": "3950:32:6"
},
"nativeSrc": "3950:37:6",
"nodeType": "YulFunctionCall",
"src": "3950:37:6"
},
"variables": [
{
"name": "newLen",
"nativeSrc": "3940:6:6",
"nodeType": "YulTypedName",
"src": "3940:6:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "4072:22:6",
"nodeType": "YulBlock",
"src": "4072:22:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "4074:16:6",
"nodeType": "YulIdentifier",
"src": "4074:16:6"
},
"nativeSrc": "4074:18:6",
"nodeType": "YulFunctionCall",
"src": "4074:18:6"
},
"nativeSrc": "4074:18:6",
"nodeType": "YulExpressionStatement",
"src": "4074:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "4044:6:6",
"nodeType": "YulIdentifier",
"src": "4044:6:6"
},
{
"kind": "number",
"nativeSrc": "4052:18:6",
"nodeType": "YulLiteral",
"src": "4052:18:6",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "4041:2:6",
"nodeType": "YulIdentifier",
"src": "4041:2:6"
},
"nativeSrc": "4041:30:6",
"nodeType": "YulFunctionCall",
"src": "4041:30:6"
},
"nativeSrc": "4038:56:6",
"nodeType": "YulIf",
"src": "4038:56:6"
},
{
"nativeSrc": "4104:52:6",
"nodeType": "YulVariableDeclaration",
"src": "4104:52:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "4150:4:6",
"nodeType": "YulIdentifier",
"src": "4150:4:6"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "4144:5:6",
"nodeType": "YulIdentifier",
"src": "4144:5:6"
},
"nativeSrc": "4144:11:6",
"nodeType": "YulFunctionCall",
"src": "4144:11:6"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nativeSrc": "4118:25:6",
"nodeType": "YulIdentifier",
"src": "4118:25:6"
},
"nativeSrc": "4118:38:6",
"nodeType": "YulFunctionCall",
"src": "4118:38:6"
},
"variables": [
{
"name": "oldLen",
"nativeSrc": "4108:6:6",
"nodeType": "YulTypedName",
"src": "4108:6:6",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "4249:4:6",
"nodeType": "YulIdentifier",
"src": "4249:4:6"
},
{
"name": "oldLen",
"nativeSrc": "4255:6:6",
"nodeType": "YulIdentifier",
"src": "4255:6:6"
},
{
"name": "newLen",
"nativeSrc": "4263:6:6",
"nodeType": "YulIdentifier",
"src": "4263:6:6"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "4203:45:6",
"nodeType": "YulIdentifier",
"src": "4203:45:6"
},
"nativeSrc": "4203:67:6",
"nodeType": "YulFunctionCall",
"src": "4203:67:6"
},
"nativeSrc": "4203:67:6",
"nodeType": "YulExpressionStatement",
"src": "4203:67:6"
},
{
"nativeSrc": "4280:18:6",
"nodeType": "YulVariableDeclaration",
"src": "4280:18:6",
"value": {
"kind": "number",
"nativeSrc": "4297:1:6",
"nodeType": "YulLiteral",
"src": "4297:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nativeSrc": "4284:9:6",
"nodeType": "YulTypedName",
"src": "4284:9:6",
"type": ""
}
]
},
{
"nativeSrc": "4308:17:6",
"nodeType": "YulAssignment",
"src": "4308:17:6",
"value": {
"kind": "number",
"nativeSrc": "4321:4:6",
"nodeType": "YulLiteral",
"src": "4321:4:6",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "4308:9:6",
"nodeType": "YulIdentifier",
"src": "4308:9:6"
}
]
},
{
"cases": [
{
"body": {
"nativeSrc": "4372:611:6",
"nodeType": "YulBlock",
"src": "4372:611:6",
"statements": [
{
"nativeSrc": "4386:37:6",
"nodeType": "YulVariableDeclaration",
"src": "4386:37:6",
"value": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "4405:6:6",
"nodeType": "YulIdentifier",
"src": "4405:6:6"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "4417:4:6",
"nodeType": "YulLiteral",
"src": "4417:4:6",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nativeSrc": "4413:3:6",
"nodeType": "YulIdentifier",
"src": "4413:3:6"
},
"nativeSrc": "4413:9:6",
"nodeType": "YulFunctionCall",
"src": "4413:9:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4401:3:6",
"nodeType": "YulIdentifier",
"src": "4401:3:6"
},
"nativeSrc": "4401:22:6",
"nodeType": "YulFunctionCall",
"src": "4401:22:6"
},
"variables": [
{
"name": "loopEnd",
"nativeSrc": "4390:7:6",
"nodeType": "YulTypedName",
"src": "4390:7:6",
"type": ""
}
]
},
{
"nativeSrc": "4437:51:6",
"nodeType": "YulVariableDeclaration",
"src": "4437:51:6",
"value": {
"arguments": [
{
"name": "slot",
"nativeSrc": "4483:4:6",
"nodeType": "YulIdentifier",
"src": "4483:4:6"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "4451:31:6",
"nodeType": "YulIdentifier",
"src": "4451:31:6"
},
"nativeSrc": "4451:37:6",
"nodeType": "YulFunctionCall",
"src": "4451:37:6"
},
"variables": [
{
"name": "dstPtr",
"nativeSrc": "4441:6:6",
"nodeType": "YulTypedName",
"src": "4441:6:6",
"type": ""
}
]
},
{
"nativeSrc": "4501:10:6",
"nodeType": "YulVariableDeclaration",
"src": "4501:10:6",
"value": {
"kind": "number",
"nativeSrc": "4510:1:6",
"nodeType": "YulLiteral",
"src": "4510:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "4505:1:6",
"nodeType": "YulTypedName",
"src": "4505:1:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "4569:163:6",
"nodeType": "YulBlock",
"src": "4569:163:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "4594:6:6",
"nodeType": "YulIdentifier",
"src": "4594:6:6"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "4612:3:6",
"nodeType": "YulIdentifier",
"src": "4612:3:6"
},
{
"name": "srcOffset",
"nativeSrc": "4617:9:6",
"nodeType": "YulIdentifier",
"src": "4617:9:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4608:3:6",
"nodeType": "YulIdentifier",
"src": "4608:3:6"
},
"nativeSrc": "4608:19:6",
"nodeType": "YulFunctionCall",
"src": "4608:19:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "4602:5:6",
"nodeType": "YulIdentifier",
"src": "4602:5:6"
},
"nativeSrc": "4602:26:6",
"nodeType": "YulFunctionCall",
"src": "4602:26:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "4587:6:6",
"nodeType": "YulIdentifier",
"src": "4587:6:6"
},
"nativeSrc": "4587:42:6",
"nodeType": "YulFunctionCall",
"src": "4587:42:6"
},
"nativeSrc": "4587:42:6",
"nodeType": "YulExpressionStatement",
"src": "4587:42:6"
},
{
"nativeSrc": "4646:24:6",
"nodeType": "YulAssignment",
"src": "4646:24:6",
"value": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "4660:6:6",
"nodeType": "YulIdentifier",
"src": "4660:6:6"
},
{
"kind": "number",
"nativeSrc": "4668:1:6",
"nodeType": "YulLiteral",
"src": "4668:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4656:3:6",
"nodeType": "YulIdentifier",
"src": "4656:3:6"
},
"nativeSrc": "4656:14:6",
"nodeType": "YulFunctionCall",
"src": "4656:14:6"
},
"variableNames": [
{
"name": "dstPtr",
"nativeSrc": "4646:6:6",
"nodeType": "YulIdentifier",
"src": "4646:6:6"
}
]
},
{
"nativeSrc": "4687:31:6",
"nodeType": "YulAssignment",
"src": "4687:31:6",
"value": {
"arguments": [
{
"name": "srcOffset",
"nativeSrc": "4704:9:6",
"nodeType": "YulIdentifier",
"src": "4704:9:6"
},
{
"kind": "number",
"nativeSrc": "4715:2:6",
"nodeType": "YulLiteral",
"src": "4715:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4700:3:6",
"nodeType": "YulIdentifier",
"src": "4700:3:6"
},
"nativeSrc": "4700:18:6",
"nodeType": "YulFunctionCall",
"src": "4700:18:6"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "4687:9:6",
"nodeType": "YulIdentifier",
"src": "4687:9:6"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "4535:1:6",
"nodeType": "YulIdentifier",
"src": "4535:1:6"
},
{
"name": "loopEnd",
"nativeSrc": "4538:7:6",
"nodeType": "YulIdentifier",
"src": "4538:7:6"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "4532:2:6",
"nodeType": "YulIdentifier",
"src": "4532:2:6"
},
"nativeSrc": "4532:14:6",
"nodeType": "YulFunctionCall",
"src": "4532:14:6"
},
"nativeSrc": "4524:208:6",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "4547:21:6",
"nodeType": "YulBlock",
"src": "4547:21:6",
"statements": [
{
"nativeSrc": "4549:17:6",
"nodeType": "YulAssignment",
"src": "4549:17:6",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "4558:1:6",
"nodeType": "YulIdentifier",
"src": "4558:1:6"
},
{
"kind": "number",
"nativeSrc": "4561:4:6",
"nodeType": "YulLiteral",
"src": "4561:4:6",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4554:3:6",
"nodeType": "YulIdentifier",
"src": "4554:3:6"
},
"nativeSrc": "4554:12:6",
"nodeType": "YulFunctionCall",
"src": "4554:12:6"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "4549:1:6",
"nodeType": "YulIdentifier",
"src": "4549:1:6"
}
]
}
]
},
"pre": {
"nativeSrc": "4528:3:6",
"nodeType": "YulBlock",
"src": "4528:3:6",
"statements": []
},
"src": "4524:208:6"
},
{
"body": {
"nativeSrc": "4768:156:6",
"nodeType": "YulBlock",
"src": "4768:156:6",
"statements": [
{
"nativeSrc": "4786:43:6",
"nodeType": "YulVariableDeclaration",
"src": "4786:43:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "4813:3:6",
"nodeType": "YulIdentifier",
"src": "4813:3:6"
},
{
"name": "srcOffset",
"nativeSrc": "4818:9:6",
"nodeType": "YulIdentifier",
"src": "4818:9:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4809:3:6",
"nodeType": "YulIdentifier",
"src": "4809:3:6"
},
"nativeSrc": "4809:19:6",
"nodeType": "YulFunctionCall",
"src": "4809:19:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "4803:5:6",
"nodeType": "YulIdentifier",
"src": "4803:5:6"
},
"nativeSrc": "4803:26:6",
"nodeType": "YulFunctionCall",
"src": "4803:26:6"
},
"variables": [
{
"name": "lastValue",
"nativeSrc": "4790:9:6",
"nodeType": "YulTypedName",
"src": "4790:9:6",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "4853:6:6",
"nodeType": "YulIdentifier",
"src": "4853:6:6"
},
{
"arguments": [
{
"name": "lastValue",
"nativeSrc": "4880:9:6",
"nodeType": "YulIdentifier",
"src": "4880:9:6"
},
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "4895:6:6",
"nodeType": "YulIdentifier",
"src": "4895:6:6"
},
{
"kind": "number",
"nativeSrc": "4903:4:6",
"nodeType": "YulLiteral",
"src": "4903:4:6",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4891:3:6",
"nodeType": "YulIdentifier",
"src": "4891:3:6"
},
"nativeSrc": "4891:17:6",
"nodeType": "YulFunctionCall",
"src": "4891:17:6"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "4861:18:6",
"nodeType": "YulIdentifier",
"src": "4861:18:6"
},
"nativeSrc": "4861:48:6",
"nodeType": "YulFunctionCall",
"src": "4861:48:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "4846:6:6",
"nodeType": "YulIdentifier",
"src": "4846:6:6"
},
"nativeSrc": "4846:64:6",
"nodeType": "YulFunctionCall",
"src": "4846:64:6"
},
"nativeSrc": "4846:64:6",
"nodeType": "YulExpressionStatement",
"src": "4846:64:6"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nativeSrc": "4751:7:6",
"nodeType": "YulIdentifier",
"src": "4751:7:6"
},
{
"name": "newLen",
"nativeSrc": "4760:6:6",
"nodeType": "YulIdentifier",
"src": "4760:6:6"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "4748:2:6",
"nodeType": "YulIdentifier",
"src": "4748:2:6"
},
"nativeSrc": "4748:19:6",
"nodeType": "YulFunctionCall",
"src": "4748:19:6"
},
"nativeSrc": "4745:179:6",
"nodeType": "YulIf",
"src": "4745:179:6"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "4944:4:6",
"nodeType": "YulIdentifier",
"src": "4944:4:6"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "4958:6:6",
"nodeType": "YulIdentifier",
"src": "4958:6:6"
},
{
"kind": "number",
"nativeSrc": "4966:1:6",
"nodeType": "YulLiteral",
"src": "4966:1:6",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "4954:3:6",
"nodeType": "YulIdentifier",
"src": "4954:3:6"
},
"nativeSrc": "4954:14:6",
"nodeType": "YulFunctionCall",
"src": "4954:14:6"
},
{
"kind": "number",
"nativeSrc": "4970:1:6",
"nodeType": "YulLiteral",
"src": "4970:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4950:3:6",
"nodeType": "YulIdentifier",
"src": "4950:3:6"
},
"nativeSrc": "4950:22:6",
"nodeType": "YulFunctionCall",
"src": "4950:22:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "4937:6:6",
"nodeType": "YulIdentifier",
"src": "4937:6:6"
},
"nativeSrc": "4937:36:6",
"nodeType": "YulFunctionCall",
"src": "4937:36:6"
},
"nativeSrc": "4937:36:6",
"nodeType": "YulExpressionStatement",
"src": "4937:36:6"
}
]
},
"nativeSrc": "4365:618:6",
"nodeType": "YulCase",
"src": "4365:618:6",
"value": {
"kind": "number",
"nativeSrc": "4370:1:6",
"nodeType": "YulLiteral",
"src": "4370:1:6",
"type": "",
"value": "1"
}
},
{
"body": {
"nativeSrc": "5000:222:6",
"nodeType": "YulBlock",
"src": "5000:222:6",
"statements": [
{
"nativeSrc": "5014:14:6",
"nodeType": "YulVariableDeclaration",
"src": "5014:14:6",
"value": {
"kind": "number",
"nativeSrc": "5027:1:6",
"nodeType": "YulLiteral",
"src": "5027:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nativeSrc": "5018:5:6",
"nodeType": "YulTypedName",
"src": "5018:5:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "5051:67:6",
"nodeType": "YulBlock",
"src": "5051:67:6",
"statements": [
{
"nativeSrc": "5069:35:6",
"nodeType": "YulAssignment",
"src": "5069:35:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "5088:3:6",
"nodeType": "YulIdentifier",
"src": "5088:3:6"
},
{
"name": "srcOffset",
"nativeSrc": "5093:9:6",
"nodeType": "YulIdentifier",
"src": "5093:9:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5084:3:6",
"nodeType": "YulIdentifier",
"src": "5084:3:6"
},
"nativeSrc": "5084:19:6",
"nodeType": "YulFunctionCall",
"src": "5084:19:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "5078:5:6",
"nodeType": "YulIdentifier",
"src": "5078:5:6"
},
"nativeSrc": "5078:26:6",
"nodeType": "YulFunctionCall",
"src": "5078:26:6"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "5069:5:6",
"nodeType": "YulIdentifier",
"src": "5069:5:6"
}
]
}
]
},
"condition": {
"name": "newLen",
"nativeSrc": "5044:6:6",
"nodeType": "YulIdentifier",
"src": "5044:6:6"
},
"nativeSrc": "5041:77:6",
"nodeType": "YulIf",
"src": "5041:77:6"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "5138:4:6",
"nodeType": "YulIdentifier",
"src": "5138:4:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "5197:5:6",
"nodeType": "YulIdentifier",
"src": "5197:5:6"
},
{
"name": "newLen",
"nativeSrc": "5204:6:6",
"nodeType": "YulIdentifier",
"src": "5204:6:6"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "5144:52:6",
"nodeType": "YulIdentifier",
"src": "5144:52:6"
},
"nativeSrc": "5144:67:6",
"nodeType": "YulFunctionCall",
"src": "5144:67:6"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "5131:6:6",
"nodeType": "YulIdentifier",
"src": "5131:6:6"
},
"nativeSrc": "5131:81:6",
"nodeType": "YulFunctionCall",
"src": "5131:81:6"
},
"nativeSrc": "5131:81:6",
"nodeType": "YulExpressionStatement",
"src": "5131:81:6"
}
]
},
"nativeSrc": "4992:230:6",
"nodeType": "YulCase",
"src": "4992:230:6",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "4345:6:6",
"nodeType": "YulIdentifier",
"src": "4345:6:6"
},
{
"kind": "number",
"nativeSrc": "4353:2:6",
"nodeType": "YulLiteral",
"src": "4353:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "4342:2:6",
"nodeType": "YulIdentifier",
"src": "4342:2:6"
},
"nativeSrc": "4342:14:6",
"nodeType": "YulFunctionCall",
"src": "4342:14:6"
},
"nativeSrc": "4335:887:6",
"nodeType": "YulSwitch",
"src": "4335:887:6"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nativeSrc": "3833:1395:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "3914:4:6",
"nodeType": "YulTypedName",
"src": "3914:4:6",
"type": ""
},
{
"name": "src",
"nativeSrc": "3920:3:6",
"nodeType": "YulTypedName",
"src": "3920:3:6",
"type": ""
}
],
"src": "3833:1395:6"
},
{
"body": {
"nativeSrc": "5279:81:6",
"nodeType": "YulBlock",
"src": "5279:81:6",
"statements": [
{
"nativeSrc": "5289:65:6",
"nodeType": "YulAssignment",
"src": "5289:65:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "5304:5:6",
"nodeType": "YulIdentifier",
"src": "5304:5:6"
},
{
"kind": "number",
"nativeSrc": "5311:42:6",
"nodeType": "YulLiteral",
"src": "5311:42:6",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "5300:3:6",
"nodeType": "YulIdentifier",
"src": "5300:3:6"
},
"nativeSrc": "5300:54:6",
"nodeType": "YulFunctionCall",
"src": "5300:54:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "5289:7:6",
"nodeType": "YulIdentifier",
"src": "5289:7:6"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "5234:126:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5261:5:6",
"nodeType": "YulTypedName",
"src": "5261:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "5271:7:6",
"nodeType": "YulTypedName",
"src": "5271:7:6",
"type": ""
}
],
"src": "5234:126:6"
},
{
"body": {
"nativeSrc": "5411:51:6",
"nodeType": "YulBlock",
"src": "5411:51:6",
"statements": [
{
"nativeSrc": "5421:35:6",
"nodeType": "YulAssignment",
"src": "5421:35:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "5450:5:6",
"nodeType": "YulIdentifier",
"src": "5450:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "5432:17:6",
"nodeType": "YulIdentifier",
"src": "5432:17:6"
},
"nativeSrc": "5432:24:6",
"nodeType": "YulFunctionCall",
"src": "5432:24:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "5421:7:6",
"nodeType": "YulIdentifier",
"src": "5421:7:6"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "5366:96:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5393:5:6",
"nodeType": "YulTypedName",
"src": "5393:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "5403:7:6",
"nodeType": "YulTypedName",
"src": "5403:7:6",
"type": ""
}
],
"src": "5366:96:6"
},
{
"body": {
"nativeSrc": "5533:53:6",
"nodeType": "YulBlock",
"src": "5533:53:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "5550:3:6",
"nodeType": "YulIdentifier",
"src": "5550:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "5573:5:6",
"nodeType": "YulIdentifier",
"src": "5573:5:6"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "5555:17:6",
"nodeType": "YulIdentifier",
"src": "5555:17:6"
},
"nativeSrc": "5555:24:6",
"nodeType": "YulFunctionCall",
"src": "5555:24:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5543:6:6",
"nodeType": "YulIdentifier",
"src": "5543:6:6"
},
"nativeSrc": "5543:37:6",
"nodeType": "YulFunctionCall",
"src": "5543:37:6"
},
"nativeSrc": "5543:37:6",
"nodeType": "YulExpressionStatement",
"src": "5543:37:6"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "5468:118:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5521:5:6",
"nodeType": "YulTypedName",
"src": "5521:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "5528:3:6",
"nodeType": "YulTypedName",
"src": "5528:3:6",
"type": ""
}
],
"src": "5468:118:6"
},
{
"body": {
"nativeSrc": "5690:124:6",
"nodeType": "YulBlock",
"src": "5690:124:6",
"statements": [
{
"nativeSrc": "5700:26:6",
"nodeType": "YulAssignment",
"src": "5700:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "5712:9:6",
"nodeType": "YulIdentifier",
"src": "5712:9:6"
},
{
"kind": "number",
"nativeSrc": "5723:2:6",
"nodeType": "YulLiteral",
"src": "5723:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5708:3:6",
"nodeType": "YulIdentifier",
"src": "5708:3:6"
},
"nativeSrc": "5708:18:6",
"nodeType": "YulFunctionCall",
"src": "5708:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "5700:4:6",
"nodeType": "YulIdentifier",
"src": "5700:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "5780:6:6",
"nodeType": "YulIdentifier",
"src": "5780:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5793:9:6",
"nodeType": "YulIdentifier",
"src": "5793:9:6"
},
{
"kind": "number",
"nativeSrc": "5804:1:6",
"nodeType": "YulLiteral",
"src": "5804:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5789:3:6",
"nodeType": "YulIdentifier",
"src": "5789:3:6"
},
"nativeSrc": "5789:17:6",
"nodeType": "YulFunctionCall",
"src": "5789:17:6"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "5736:43:6",
"nodeType": "YulIdentifier",
"src": "5736:43:6"
},
"nativeSrc": "5736:71:6",
"nodeType": "YulFunctionCall",
"src": "5736:71:6"
},
"nativeSrc": "5736:71:6",
"nodeType": "YulExpressionStatement",
"src": "5736:71:6"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nativeSrc": "5592:222:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5662:9:6",
"nodeType": "YulTypedName",
"src": "5662:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "5674:6:6",
"nodeType": "YulTypedName",
"src": "5674:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "5685:4:6",
"nodeType": "YulTypedName",
"src": "5685:4:6",
"type": ""
}
],
"src": "5592:222:6"
},
{
"body": {
"nativeSrc": "5848:152:6",
"nodeType": "YulBlock",
"src": "5848:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5865:1:6",
"nodeType": "YulLiteral",
"src": "5865:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5868:77:6",
"nodeType": "YulLiteral",
"src": "5868:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5858:6:6",
"nodeType": "YulIdentifier",
"src": "5858:6:6"
},
"nativeSrc": "5858:88:6",
"nodeType": "YulFunctionCall",
"src": "5858:88:6"
},
"nativeSrc": "5858:88:6",
"nodeType": "YulExpressionStatement",
"src": "5858:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5962:1:6",
"nodeType": "YulLiteral",
"src": "5962:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "5965:4:6",
"nodeType": "YulLiteral",
"src": "5965:4:6",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5955:6:6",
"nodeType": "YulIdentifier",
"src": "5955:6:6"
},
"nativeSrc": "5955:15:6",
"nodeType": "YulFunctionCall",
"src": "5955:15:6"
},
"nativeSrc": "5955:15:6",
"nodeType": "YulExpressionStatement",
"src": "5955:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5986:1:6",
"nodeType": "YulLiteral",
"src": "5986:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5989:4:6",
"nodeType": "YulLiteral",
"src": "5989:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "5979:6:6",
"nodeType": "YulIdentifier",
"src": "5979:6:6"
},
"nativeSrc": "5979:15:6",
"nodeType": "YulFunctionCall",
"src": "5979:15:6"
},
"nativeSrc": "5979:15:6",
"nodeType": "YulExpressionStatement",
"src": "5979:15:6"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "5820:180:6",
"nodeType": "YulFunctionDefinition",
"src": "5820:180:6"
},
{
"body": {
"nativeSrc": "6050:147:6",
"nodeType": "YulBlock",
"src": "6050:147:6",
"statements": [
{
"nativeSrc": "6060:25:6",
"nodeType": "YulAssignment",
"src": "6060:25:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "6083:1:6",
"nodeType": "YulIdentifier",
"src": "6083:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "6065:17:6",
"nodeType": "YulIdentifier",
"src": "6065:17:6"
},
"nativeSrc": "6065:20:6",
"nodeType": "YulFunctionCall",
"src": "6065:20:6"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "6060:1:6",
"nodeType": "YulIdentifier",
"src": "6060:1:6"
}
]
},
{
"nativeSrc": "6094:25:6",
"nodeType": "YulAssignment",
"src": "6094:25:6",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "6117:1:6",
"nodeType": "YulIdentifier",
"src": "6117:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "6099:17:6",
"nodeType": "YulIdentifier",
"src": "6099:17:6"
},
"nativeSrc": "6099:20:6",
"nodeType": "YulFunctionCall",
"src": "6099:20:6"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "6094:1:6",
"nodeType": "YulIdentifier",
"src": "6094:1:6"
}
]
},
{
"nativeSrc": "6128:16:6",
"nodeType": "YulAssignment",
"src": "6128:16:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "6139:1:6",
"nodeType": "YulIdentifier",
"src": "6139:1:6"
},
{
"name": "y",
"nativeSrc": "6142:1:6",
"nodeType": "YulIdentifier",
"src": "6142:1:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6135:3:6",
"nodeType": "YulIdentifier",
"src": "6135:3:6"
},
"nativeSrc": "6135:9:6",
"nodeType": "YulFunctionCall",
"src": "6135:9:6"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "6128:3:6",
"nodeType": "YulIdentifier",
"src": "6128:3:6"
}
]
},
{
"body": {
"nativeSrc": "6168:22:6",
"nodeType": "YulBlock",
"src": "6168:22:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "6170:16:6",
"nodeType": "YulIdentifier",
"src": "6170:16:6"
},
"nativeSrc": "6170:18:6",
"nodeType": "YulFunctionCall",
"src": "6170:18:6"
},
"nativeSrc": "6170:18:6",
"nodeType": "YulExpressionStatement",
"src": "6170:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "6160:1:6",
"nodeType": "YulIdentifier",
"src": "6160:1:6"
},
{
"name": "sum",
"nativeSrc": "6163:3:6",
"nodeType": "YulIdentifier",
"src": "6163:3:6"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "6157:2:6",
"nodeType": "YulIdentifier",
"src": "6157:2:6"
},
"nativeSrc": "6157:10:6",
"nodeType": "YulFunctionCall",
"src": "6157:10:6"
},
"nativeSrc": "6154:36:6",
"nodeType": "YulIf",
"src": "6154:36:6"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "6006:191:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "6037:1:6",
"nodeType": "YulTypedName",
"src": "6037:1:6",
"type": ""
},
{
"name": "y",
"nativeSrc": "6040:1:6",
"nodeType": "YulTypedName",
"src": "6040:1:6",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "6046:3:6",
"nodeType": "YulTypedName",
"src": "6046:3:6",
"type": ""
}
],
"src": "6006:191:6"
},
{
"body": {
"nativeSrc": "6268:53:6",
"nodeType": "YulBlock",
"src": "6268:53:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6285:3:6",
"nodeType": "YulIdentifier",
"src": "6285:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "6308:5:6",
"nodeType": "YulIdentifier",
"src": "6308:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "6290:17:6",
"nodeType": "YulIdentifier",
"src": "6290:17:6"
},
"nativeSrc": "6290:24:6",
"nodeType": "YulFunctionCall",
"src": "6290:24:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6278:6:6",
"nodeType": "YulIdentifier",
"src": "6278:6:6"
},
"nativeSrc": "6278:37:6",
"nodeType": "YulFunctionCall",
"src": "6278:37:6"
},
"nativeSrc": "6278:37:6",
"nodeType": "YulExpressionStatement",
"src": "6278:37:6"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "6203:118:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "6256:5:6",
"nodeType": "YulTypedName",
"src": "6256:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "6263:3:6",
"nodeType": "YulTypedName",
"src": "6263:3:6",
"type": ""
}
],
"src": "6203:118:6"
},
{
"body": {
"nativeSrc": "6481:288:6",
"nodeType": "YulBlock",
"src": "6481:288:6",
"statements": [
{
"nativeSrc": "6491:26:6",
"nodeType": "YulAssignment",
"src": "6491:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "6503:9:6",
"nodeType": "YulIdentifier",
"src": "6503:9:6"
},
{
"kind": "number",
"nativeSrc": "6514:2:6",
"nodeType": "YulLiteral",
"src": "6514:2:6",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6499:3:6",
"nodeType": "YulIdentifier",
"src": "6499:3:6"
},
"nativeSrc": "6499:18:6",
"nodeType": "YulFunctionCall",
"src": "6499:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "6491:4:6",
"nodeType": "YulIdentifier",
"src": "6491:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "6571:6:6",
"nodeType": "YulIdentifier",
"src": "6571:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6584:9:6",
"nodeType": "YulIdentifier",
"src": "6584:9:6"
},
{
"kind": "number",
"nativeSrc": "6595:1:6",
"nodeType": "YulLiteral",
"src": "6595:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6580:3:6",
"nodeType": "YulIdentifier",
"src": "6580:3:6"
},
"nativeSrc": "6580:17:6",
"nodeType": "YulFunctionCall",
"src": "6580:17:6"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "6527:43:6",
"nodeType": "YulIdentifier",
"src": "6527:43:6"
},
"nativeSrc": "6527:71:6",
"nodeType": "YulFunctionCall",
"src": "6527:71:6"
},
"nativeSrc": "6527:71:6",
"nodeType": "YulExpressionStatement",
"src": "6527:71:6"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "6652:6:6",
"nodeType": "YulIdentifier",
"src": "6652:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6665:9:6",
"nodeType": "YulIdentifier",
"src": "6665:9:6"
},
{
"kind": "number",
"nativeSrc": "6676:2:6",
"nodeType": "YulLiteral",
"src": "6676:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6661:3:6",
"nodeType": "YulIdentifier",
"src": "6661:3:6"
},
"nativeSrc": "6661:18:6",
"nodeType": "YulFunctionCall",
"src": "6661:18:6"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "6608:43:6",
"nodeType": "YulIdentifier",
"src": "6608:43:6"
},
"nativeSrc": "6608:72:6",
"nodeType": "YulFunctionCall",
"src": "6608:72:6"
},
"nativeSrc": "6608:72:6",
"nodeType": "YulExpressionStatement",
"src": "6608:72:6"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "6734:6:6",
"nodeType": "YulIdentifier",
"src": "6734:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6747:9:6",
"nodeType": "YulIdentifier",
"src": "6747:9:6"
},
{
"kind": "number",
"nativeSrc": "6758:2:6",
"nodeType": "YulLiteral",
"src": "6758:2:6",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6743:3:6",
"nodeType": "YulIdentifier",
"src": "6743:3:6"
},
"nativeSrc": "6743:18:6",
"nodeType": "YulFunctionCall",
"src": "6743:18:6"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "6690:43:6",
"nodeType": "YulIdentifier",
"src": "6690:43:6"
},
"nativeSrc": "6690:72:6",
"nodeType": "YulFunctionCall",
"src": "6690:72:6"
},
"nativeSrc": "6690:72:6",
"nodeType": "YulExpressionStatement",
"src": "6690:72:6"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
"nativeSrc": "6327:442:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "6437:9:6",
"nodeType": "YulTypedName",
"src": "6437:9:6",
"type": ""
},
{
"name": "value2",
"nativeSrc": "6449:6:6",
"nodeType": "YulTypedName",
"src": "6449:6:6",
"type": ""
},
{
"name": "value1",
"nativeSrc": "6457:6:6",
"nodeType": "YulTypedName",
"src": "6457:6:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "6465:6:6",
"nodeType": "YulTypedName",
"src": "6465:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "6476:4:6",
"nodeType": "YulTypedName",
"src": "6476:4:6",
"type": ""
}
],
"src": "6327:442:6"
},
{
"body": {
"nativeSrc": "6873:124:6",
"nodeType": "YulBlock",
"src": "6873:124:6",
"statements": [
{
"nativeSrc": "6883:26:6",
"nodeType": "YulAssignment",
"src": "6883:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "6895:9:6",
"nodeType": "YulIdentifier",
"src": "6895:9:6"
},
{
"kind": "number",
"nativeSrc": "6906:2:6",
"nodeType": "YulLiteral",
"src": "6906:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6891:3:6",
"nodeType": "YulIdentifier",
"src": "6891:3:6"
},
"nativeSrc": "6891:18:6",
"nodeType": "YulFunctionCall",
"src": "6891:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "6883:4:6",
"nodeType": "YulIdentifier",
"src": "6883:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "6963:6:6",
"nodeType": "YulIdentifier",
"src": "6963:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6976:9:6",
"nodeType": "YulIdentifier",
"src": "6976:9:6"
},
{
"kind": "number",
"nativeSrc": "6987:1:6",
"nodeType": "YulLiteral",
"src": "6987:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6972:3:6",
"nodeType": "YulIdentifier",
"src": "6972:3:6"
},
"nativeSrc": "6972:17:6",
"nodeType": "YulFunctionCall",
"src": "6972:17:6"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "6919:43:6",
"nodeType": "YulIdentifier",
"src": "6919:43:6"
},
"nativeSrc": "6919:71:6",
"nodeType": "YulFunctionCall",
"src": "6919:71:6"
},
"nativeSrc": "6919:71:6",
"nodeType": "YulExpressionStatement",
"src": "6919:71:6"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "6775:222:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "6845:9:6",
"nodeType": "YulTypedName",
"src": "6845:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "6857:6:6",
"nodeType": "YulTypedName",
"src": "6857:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "6868:4:6",
"nodeType": "YulTypedName",
"src": "6868:4:6",
"type": ""
}
],
"src": "6775:222:6"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\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 abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\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 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_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 abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 6,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b50d3801561001b575f80fd5b50d28015610027575f80fd5b506040518060400160405280600981526020017f4d6f636b205553445400000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f6d5553445400000000000000000000000000000000000000000000000000000081525081600390816100a391906105a8565b5080600490816100b391906105a8565b5050506100cb3364e8d4a510006100d060201b60201c565b61078c565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610140575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161013791906106b6565b60405180910390fd5b6101515f838361015560201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036101a5578060025f82825461019991906106fc565b92505081905550610273565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561022e578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102259392919061073e565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036102ba578060025f8282540392505081905550610304565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103619190610773565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103e957607f821691505b6020821081036103fc576103fb6103a5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261045e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610423565b6104688683610423565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104ac6104a76104a284610480565b610489565b610480565b9050919050565b5f819050919050565b6104c583610492565b6104d96104d1826104b3565b84845461042f565b825550505050565b5f90565b6104ed6104e1565b6104f88184846104bc565b505050565b5b8181101561051b576105105f826104e5565b6001810190506104fe565b5050565b601f8211156105605761053181610402565b61053a84610414565b81016020851015610549578190505b61055d61055585610414565b8301826104fd565b50505b505050565b5f82821c905092915050565b5f6105805f1984600802610565565b1980831691505092915050565b5f6105988383610571565b9150826002028217905092915050565b6105b18261036e565b67ffffffffffffffff8111156105ca576105c9610378565b5b6105d482546103d2565b6105df82828561051f565b5f60209050601f831160018114610610575f84156105fe578287015190505b610608858261058d565b86555061066f565b601f19841661061e86610402565b5f5b8281101561064557848901518255600182019150602085019450602081019050610620565b86831015610662578489015161065e601f891682610571565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106a082610677565b9050919050565b6106b081610696565b82525050565b5f6020820190506106c95f8301846106a7565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61070682610480565b915061071183610480565b9250828201905080821115610729576107286106cf565b5b92915050565b61073881610480565b82525050565b5f6060820190506107515f8301866106a7565b61075e602083018561072f565b61076b604083018461072f565b949350505050565b5f6020820190506107865f83018461072f565b92915050565b610ed9806107995f395ff3fe608060405234801561000f575f80fd5b50d3801561001b575f80fd5b50d28015610027575f80fd5b50600436106100b4575f3560e01c806340c10f191161007c57806340c10f191461017257806370a082311461018e57806395d89b41146101be578063a9059cbb146101dc578063dd62ed3e1461020c576100b4565b806306fdde03146100b8578063095ea7b3146100d657806318160ddd1461010657806323b872dd14610124578063313ce56714610154575b5f80fd5b6100c061023c565b6040516100cd9190610b27565b60405180910390f35b6100f060048036038101906100eb9190610c03565b6102cc565b6040516100fd9190610c5b565b60405180910390f35b61010e6102ee565b60405161011b9190610c83565b60405180910390f35b61013e60048036038101906101399190610c9c565b6102f7565b60405161014b9190610c5b565b60405180910390f35b61015c610325565b6040516101699190610d07565b60405180910390f35b61018c60048036038101906101879190610c03565b61032d565b005b6101a860048036038101906101a39190610d20565b61033b565b6040516101b59190610c83565b60405180910390f35b6101c6610380565b6040516101d39190610b27565b60405180910390f35b6101f660048036038101906101f19190610c03565b610410565b6040516102039190610c5b565b60405180910390f35b61022660048036038101906102219190610d4b565b610432565b6040516102339190610c83565b60405180910390f35b60606003805461024b90610db6565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610db6565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b5f806102d66104b4565b90506102e38185856104bb565b600191505092915050565b5f600254905090565b5f806103016104b4565b905061030e8582856104cd565b610319858585610560565b60019150509392505050565b5f6006905090565b6103378282610650565b5050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461038f90610db6565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb90610db6565b80156104065780601f106103dd57610100808354040283529160200191610406565b820191905f5260205f20905b8154815290600101906020018083116103e957829003601f168201915b5050505050905090565b5f8061041a6104b4565b9050610427818585610560565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104c883838360016106cf565b505050565b5f6104d88484610432565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561055a578181101561054b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161054293929190610df5565b60405180910390fd5b61055984848484035f6106cf565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610640575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106379190610e2a565b60405180910390fd5b61064b83838361089e565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c0575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106b79190610e2a565b60405180910390fd5b6106cb5f838361089e565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361073f575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107369190610e2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107af575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107a69190610e2a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610898578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161088f9190610c83565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108ee578060025f8282546108e29190610e70565b925050819055506109bc565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610977578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161096e93929190610df5565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a03578060025f8282540392505081905550610a4d565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610aaa9190610c83565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610af982610ab7565b610b038185610ac1565b9350610b13818560208601610ad1565b610b1c81610adf565b840191505092915050565b5f6020820190508181035f830152610b3f8184610aef565b905092915050565b5f80fd5b5f74ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610b7481610b4b565b8114610b7e575f80fd5b50565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610baa82610b81565b9050919050565b5f81359050610bbf81610b6b565b610bc881610ba0565b905092915050565b5f819050919050565b610be281610bd0565b8114610bec575f80fd5b50565b5f81359050610bfd81610bd9565b92915050565b5f8060408385031215610c1957610c18610b47565b5b5f610c2685828601610bb1565b9250506020610c3785828601610bef565b9150509250929050565b5f8115159050919050565b610c5581610c41565b82525050565b5f602082019050610c6e5f830184610c4c565b92915050565b610c7d81610bd0565b82525050565b5f602082019050610c965f830184610c74565b92915050565b5f805f60608486031215610cb357610cb2610b47565b5b5f610cc086828701610bb1565b9350506020610cd186828701610bb1565b9250506040610ce286828701610bef565b9150509250925092565b5f60ff82169050919050565b610d0181610cec565b82525050565b5f602082019050610d1a5f830184610cf8565b92915050565b5f60208284031215610d3557610d34610b47565b5b5f610d4284828501610bb1565b91505092915050565b5f8060408385031215610d6157610d60610b47565b5b5f610d6e85828601610bb1565b9250506020610d7f85828601610bb1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610dcd57607f821691505b602082108103610de057610ddf610d89565b5b50919050565b610def81610ba0565b82525050565b5f606082019050610e085f830186610de6565b610e156020830185610c74565b610e226040830184610c74565b949350505050565b5f602082019050610e3d5f830184610de6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e7a82610bd0565b9150610e8583610bd0565b9250828201905080821115610e9d57610e9c610e43565b5b9291505056fea26474726f6e58221220e8a2149cf94f56b30e9fc41561172d852d7e3dcd26b09e25532d70b33ea5a1c264736f6c634300081a0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP CALLTOKENID DUP1 ISZERO PUSH2 0x1B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP CALLTOKENVALUE DUP1 ISZERO PUSH2 0x27 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20555344540000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6D55534454000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH2 0xA3 SWAP2 SWAP1 PUSH2 0x5A8 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH2 0xB3 SWAP2 SWAP1 PUSH2 0x5A8 JUMP JUMPDEST POP POP POP PUSH2 0xCB CALLER PUSH5 0xE8D4A51000 PUSH2 0xD0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x78C JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x140 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x137 SWAP2 SWAP1 PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x151 PUSH0 DUP4 DUP4 PUSH2 0x155 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1A5 JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x199 SWAP2 SWAP1 PUSH2 0x6FC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x273 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x22E JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x225 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x73E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2BA JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x304 JUMP JUMPDEST DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x361 SWAP2 SWAP1 PUSH2 0x773 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x3E9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3FC JUMPI PUSH2 0x3FB PUSH2 0x3A5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x45E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x423 JUMP JUMPDEST PUSH2 0x468 DUP7 DUP4 PUSH2 0x423 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4AC PUSH2 0x4A7 PUSH2 0x4A2 DUP5 PUSH2 0x480 JUMP JUMPDEST PUSH2 0x489 JUMP JUMPDEST PUSH2 0x480 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4C5 DUP4 PUSH2 0x492 JUMP JUMPDEST PUSH2 0x4D9 PUSH2 0x4D1 DUP3 PUSH2 0x4B3 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x42F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x4ED PUSH2 0x4E1 JUMP JUMPDEST PUSH2 0x4F8 DUP2 DUP5 DUP5 PUSH2 0x4BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x51B JUMPI PUSH2 0x510 PUSH0 DUP3 PUSH2 0x4E5 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4FE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x560 JUMPI PUSH2 0x531 DUP2 PUSH2 0x402 JUMP JUMPDEST PUSH2 0x53A DUP5 PUSH2 0x414 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x549 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x55D PUSH2 0x555 DUP6 PUSH2 0x414 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x4FD JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x580 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x565 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x598 DUP4 DUP4 PUSH2 0x571 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5B1 DUP3 PUSH2 0x36E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5CA JUMPI PUSH2 0x5C9 PUSH2 0x378 JUMP JUMPDEST JUMPDEST PUSH2 0x5D4 DUP3 SLOAD PUSH2 0x3D2 JUMP JUMPDEST PUSH2 0x5DF DUP3 DUP3 DUP6 PUSH2 0x51F JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x610 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x5FE JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x608 DUP6 DUP3 PUSH2 0x58D JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x66F JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x61E DUP7 PUSH2 0x402 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x645 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x620 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x662 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x65E PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x571 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6A0 DUP3 PUSH2 0x677 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6B0 DUP2 PUSH2 0x696 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6C9 PUSH0 DUP4 ADD DUP5 PUSH2 0x6A7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x706 DUP3 PUSH2 0x480 JUMP JUMPDEST SWAP2 POP PUSH2 0x711 DUP4 PUSH2 0x480 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x729 JUMPI PUSH2 0x728 PUSH2 0x6CF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x738 DUP2 PUSH2 0x480 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x751 PUSH0 DUP4 ADD DUP7 PUSH2 0x6A7 JUMP JUMPDEST PUSH2 0x75E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x72F JUMP JUMPDEST PUSH2 0x76B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x72F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x786 PUSH0 DUP4 ADD DUP5 PUSH2 0x72F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xED9 DUP1 PUSH2 0x799 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP CALLTOKENID DUP1 ISZERO PUSH2 0x1B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP CALLTOKENVALUE DUP1 ISZERO PUSH2 0x27 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x20C JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x124 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x154 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC0 PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCD SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEB SWAP2 SWAP1 PUSH2 0xC03 JUMP JUMPDEST PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFD SWAP2 SWAP1 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10E PUSH2 0x2EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11B SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x139 SWAP2 SWAP1 PUSH2 0xC9C JUMP JUMPDEST PUSH2 0x2F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14B SWAP2 SWAP1 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15C PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x169 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x187 SWAP2 SWAP1 PUSH2 0xC03 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xD20 JUMP JUMPDEST PUSH2 0x33B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B5 SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C6 PUSH2 0x380 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F1 SWAP2 SWAP1 PUSH2 0xC03 JUMP JUMPDEST PUSH2 0x410 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x203 SWAP2 SWAP1 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0x432 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x233 SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x24B SWAP1 PUSH2 0xDB6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x277 SWAP1 PUSH2 0xDB6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2C2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x299 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2C2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2A5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x2D6 PUSH2 0x4B4 JUMP JUMPDEST SWAP1 POP PUSH2 0x2E3 DUP2 DUP6 DUP6 PUSH2 0x4BB JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x301 PUSH2 0x4B4 JUMP JUMPDEST SWAP1 POP PUSH2 0x30E DUP6 DUP3 DUP6 PUSH2 0x4CD JUMP JUMPDEST PUSH2 0x319 DUP6 DUP6 DUP6 PUSH2 0x560 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x6 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x337 DUP3 DUP3 PUSH2 0x650 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x38F SWAP1 PUSH2 0xDB6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3BB SWAP1 PUSH2 0xDB6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x406 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x406 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3E9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x41A PUSH2 0x4B4 JUMP JUMPDEST SWAP1 POP PUSH2 0x427 DUP2 DUP6 DUP6 PUSH2 0x560 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C8 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6CF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4D8 DUP5 DUP5 PUSH2 0x432 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x55A JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x54B JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x542 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x559 DUP5 DUP5 DUP5 DUP5 SUB PUSH0 PUSH2 0x6CF JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x640 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x637 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64B DUP4 DUP4 DUP4 PUSH2 0x89E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6B7 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6CB PUSH0 DUP4 DUP4 PUSH2 0x89E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x73F JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x736 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7AF JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x898 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x88F SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8EE JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x8E2 SWAP2 SWAP1 PUSH2 0xE70 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9BC JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x977 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x96E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA03 JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA4D JUMP JUMPDEST DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAAA SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xAF9 DUP3 PUSH2 0xAB7 JUMP JUMPDEST PUSH2 0xB03 DUP2 DUP6 PUSH2 0xAC1 JUMP JUMPDEST SWAP4 POP PUSH2 0xB13 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0xB1C DUP2 PUSH2 0xADF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xB3F DUP2 DUP5 PUSH2 0xAEF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH21 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB74 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP2 EQ PUSH2 0xB7E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xBAA DUP3 PUSH2 0xB81 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBBF DUP2 PUSH2 0xB6B JUMP JUMPDEST PUSH2 0xBC8 DUP2 PUSH2 0xBA0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE2 DUP2 PUSH2 0xBD0 JUMP JUMPDEST DUP2 EQ PUSH2 0xBEC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBFD DUP2 PUSH2 0xBD9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC19 JUMPI PUSH2 0xC18 PUSH2 0xB47 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC26 DUP6 DUP3 DUP7 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC37 DUP6 DUP3 DUP7 ADD PUSH2 0xBEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC55 DUP2 PUSH2 0xC41 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC6E PUSH0 DUP4 ADD DUP5 PUSH2 0xC4C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC7D DUP2 PUSH2 0xBD0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC96 PUSH0 DUP4 ADD DUP5 PUSH2 0xC74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCB3 JUMPI PUSH2 0xCB2 PUSH2 0xB47 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCC0 DUP7 DUP3 DUP8 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCD1 DUP7 DUP3 DUP8 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD01 DUP2 PUSH2 0xCEC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD1A PUSH0 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD35 JUMPI PUSH2 0xD34 PUSH2 0xB47 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD42 DUP5 DUP3 DUP6 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xB47 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP6 DUP3 DUP7 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD7F DUP6 DUP3 DUP7 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDCD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDE0 JUMPI PUSH2 0xDDF PUSH2 0xD89 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDEF DUP2 PUSH2 0xBA0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE08 PUSH0 DUP4 ADD DUP7 PUSH2 0xDE6 JUMP JUMPDEST PUSH2 0xE15 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC74 JUMP JUMPDEST PUSH2 0xE22 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC74 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE3D PUSH0 DUP4 ADD DUP5 PUSH2 0xDE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xE7A DUP3 PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP PUSH2 0xE85 DUP4 PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xE9D JUMPI PUSH2 0xE9C PUSH2 0xE43 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x74726F6E58 0x22 SLT KECCAK256 0xE8 LOG2 EQ SWAP13 0xF9 0x4F JUMP 0xB3 0xE SWAP16 0xC4 ISZERO PUSH2 0x172D DUP6 0x2D PUSH31 0x3DCD26B09E25532D70B33EA5A1C264736F6C634300081A0033000000000000 ",
"sourceMap": "115:309:5:-:0;;;148:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1582:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;200:36:5::1;206:10;218:17;200:5;;;:36;;:::i;:::-;115:309:::0;;7362:208:1;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;;;:35;;:::i;:::-;7362:208;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:6:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;5234:126::-;5271:7;5311:42;5304:5;5300:54;5289:65;;5234:126;;;:::o;5366:96::-;5403:7;5432:24;5450:5;5432:24;:::i;:::-;5421:35;;5366:96;;;:::o;5468:118::-;5555:24;5573:5;5555:24;:::i;:::-;5550:3;5543:37;5468:118;;:::o;5592:222::-;5685:4;5723:2;5712:9;5708:18;5700:26;;5736:71;5804:1;5793:9;5789:17;5780:6;5736:71;:::i;:::-;5592:222;;;;:::o;5820:180::-;5868:77;5865:1;5858:88;5965:4;5962:1;5955:15;5989:4;5986:1;5979:15;6006:191;6046:3;6065:20;6083:1;6065:20;:::i;:::-;6060:25;;6099:20;6117:1;6099:20;:::i;:::-;6094:25;;6142:1;6139;6135:9;6128:16;;6163:3;6160:1;6157:10;6154:36;;;6170:18;;:::i;:::-;6154:36;6006:191;;;;:::o;6203:118::-;6290:24;6308:5;6290:24;:::i;:::-;6285:3;6278:37;6203:118;;:::o;6327:442::-;6476:4;6514:2;6503:9;6499:18;6491:26;;6527:71;6595:1;6584:9;6580:17;6571:6;6527:71;:::i;:::-;6608:72;6676:2;6665:9;6661:18;6652:6;6608:72;:::i;:::-;6690;6758:2;6747:9;6743:18;6734:6;6690:72;:::i;:::-;6327:442;;;;;;:::o;6775:222::-;6868:4;6906:2;6895:9;6891:18;6883:26;;6919:71;6987:1;6976:9;6972:17;6963:6;6919:71;:::i;:::-;6775:222;;;;:::o;115:309:5:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_approve_542": {
"entryPoint": 1211,
"id": 542,
"parameterSlots": 3,
"returnSlots": 0
},
"@_approve_602": {
"entryPoint": 1743,
"id": 602,
"parameterSlots": 4,
"returnSlots": 0
},
"@_mint_491": {
"entryPoint": 1616,
"id": 491,
"parameterSlots": 2,
"returnSlots": 0
},
"@_msgSender_767": {
"entryPoint": 1204,
"id": 767,
"parameterSlots": 0,
"returnSlots": 1
},
"@_spendAllowance_650": {
"entryPoint": 1229,
"id": 650,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transfer_381": {
"entryPoint": 1376,
"id": 381,
"parameterSlots": 3,
"returnSlots": 0
},
"@_update_458": {
"entryPoint": 2206,
"id": 458,
"parameterSlots": 3,
"returnSlots": 0
},
"@allowance_278": {
"entryPoint": 1074,
"id": 278,
"parameterSlots": 2,
"returnSlots": 1
},
"@approve_302": {
"entryPoint": 716,
"id": 302,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_237": {
"entryPoint": 827,
"id": 237,
"parameterSlots": 1,
"returnSlots": 1
},
"@decimals_817": {
"entryPoint": 805,
"id": 817,
"parameterSlots": 0,
"returnSlots": 1
},
"@mint_830": {
"entryPoint": 813,
"id": 830,
"parameterSlots": 2,
"returnSlots": 0
},
"@name_197": {
"entryPoint": 572,
"id": 197,
"parameterSlots": 0,
"returnSlots": 1
},
"@symbol_206": {
"entryPoint": 896,
"id": 206,
"parameterSlots": 0,
"returnSlots": 1
},
"@totalSupply_224": {
"entryPoint": 750,
"id": 224,
"parameterSlots": 0,
"returnSlots": 1
},
"@transferFrom_334": {
"entryPoint": 759,
"id": 334,
"parameterSlots": 3,
"returnSlots": 1
},
"@transfer_261": {
"entryPoint": 1040,
"id": 261,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 2993,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 3055,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 3360,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 3403,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_uint256": {
"entryPoint": 3228,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 3075,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 3558,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 3148,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 2799,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 3188,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint8_to_t_uint8_fromStack": {
"entryPoint": 3320,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 3626,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 3573,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 3163,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 2855,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 3203,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
"entryPoint": 3335,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 2743,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 2753,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 3696,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 2976,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 3137,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 2945,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint168": {
"entryPoint": 2891,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 3024,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint8": {
"entryPoint": 3308,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 2769,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 3510,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 3651,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 3465,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 2887,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 2783,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 2923,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 3033,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:7429:6",
"nodeType": "YulBlock",
"src": "0:7429:6",
"statements": [
{
"body": {
"nativeSrc": "66:40:6",
"nodeType": "YulBlock",
"src": "66:40:6",
"statements": [
{
"nativeSrc": "77:22:6",
"nodeType": "YulAssignment",
"src": "77:22:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "93:5:6",
"nodeType": "YulIdentifier",
"src": "93:5:6"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "87:5:6",
"nodeType": "YulIdentifier",
"src": "87:5:6"
},
"nativeSrc": "87:12:6",
"nodeType": "YulFunctionCall",
"src": "87:12:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "77:6:6",
"nodeType": "YulIdentifier",
"src": "77:6:6"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "7:99:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "49:5:6",
"nodeType": "YulTypedName",
"src": "49:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "59:6:6",
"nodeType": "YulTypedName",
"src": "59:6:6",
"type": ""
}
],
"src": "7:99:6"
},
{
"body": {
"nativeSrc": "208:73:6",
"nodeType": "YulBlock",
"src": "208:73:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "225:3:6",
"nodeType": "YulIdentifier",
"src": "225:3:6"
},
{
"name": "length",
"nativeSrc": "230:6:6",
"nodeType": "YulIdentifier",
"src": "230:6:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "218:6:6",
"nodeType": "YulIdentifier",
"src": "218:6:6"
},
"nativeSrc": "218:19:6",
"nodeType": "YulFunctionCall",
"src": "218:19:6"
},
"nativeSrc": "218:19:6",
"nodeType": "YulExpressionStatement",
"src": "218:19:6"
},
{
"nativeSrc": "246:29:6",
"nodeType": "YulAssignment",
"src": "246:29:6",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "265:3:6",
"nodeType": "YulIdentifier",
"src": "265:3:6"
},
{
"kind": "number",
"nativeSrc": "270:4:6",
"nodeType": "YulLiteral",
"src": "270:4:6",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "261:3:6",
"nodeType": "YulIdentifier",
"src": "261:3:6"
},
"nativeSrc": "261:14:6",
"nodeType": "YulFunctionCall",
"src": "261:14:6"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "246:11:6",
"nodeType": "YulIdentifier",
"src": "246:11:6"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "112:169:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "180:3:6",
"nodeType": "YulTypedName",
"src": "180:3:6",
"type": ""
},
{
"name": "length",
"nativeSrc": "185:6:6",
"nodeType": "YulTypedName",
"src": "185:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "196:11:6",
"nodeType": "YulTypedName",
"src": "196:11:6",
"type": ""
}
],
"src": "112:169:6"
},
{
"body": {
"nativeSrc": "349:77:6",
"nodeType": "YulBlock",
"src": "349:77:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nativeSrc": "366:3:6",
"nodeType": "YulIdentifier",
"src": "366:3:6"
},
{
"name": "src",
"nativeSrc": "371:3:6",
"nodeType": "YulIdentifier",
"src": "371:3:6"
},
{
"name": "length",
"nativeSrc": "376:6:6",
"nodeType": "YulIdentifier",
"src": "376:6:6"
}
],
"functionName": {
"name": "mcopy",
"nativeSrc": "360:5:6",
"nodeType": "YulIdentifier",
"src": "360:5:6"
},
"nativeSrc": "360:23:6",
"nodeType": "YulFunctionCall",
"src": "360:23:6"
},
"nativeSrc": "360:23:6",
"nodeType": "YulExpressionStatement",
"src": "360:23:6"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "403:3:6",
"nodeType": "YulIdentifier",
"src": "403:3:6"
},
{
"name": "length",
"nativeSrc": "408:6:6",
"nodeType": "YulIdentifier",
"src": "408:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "399:3:6",
"nodeType": "YulIdentifier",
"src": "399:3:6"
},
"nativeSrc": "399:16:6",
"nodeType": "YulFunctionCall",
"src": "399:16:6"
},
{
"kind": "number",
"nativeSrc": "417:1:6",
"nodeType": "YulLiteral",
"src": "417:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "392:6:6",
"nodeType": "YulIdentifier",
"src": "392:6:6"
},
"nativeSrc": "392:27:6",
"nodeType": "YulFunctionCall",
"src": "392:27:6"
},
"nativeSrc": "392:27:6",
"nodeType": "YulExpressionStatement",
"src": "392:27:6"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "287:139:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "331:3:6",
"nodeType": "YulTypedName",
"src": "331:3:6",
"type": ""
},
{
"name": "dst",
"nativeSrc": "336:3:6",
"nodeType": "YulTypedName",
"src": "336:3:6",
"type": ""
},
{
"name": "length",
"nativeSrc": "341:6:6",
"nodeType": "YulTypedName",
"src": "341:6:6",
"type": ""
}
],
"src": "287:139:6"
},
{
"body": {
"nativeSrc": "480:54:6",
"nodeType": "YulBlock",
"src": "480:54:6",
"statements": [
{
"nativeSrc": "490:38:6",
"nodeType": "YulAssignment",
"src": "490:38:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "508:5:6",
"nodeType": "YulIdentifier",
"src": "508:5:6"
},
{
"kind": "number",
"nativeSrc": "515:2:6",
"nodeType": "YulLiteral",
"src": "515:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "504:3:6",
"nodeType": "YulIdentifier",
"src": "504:3:6"
},
"nativeSrc": "504:14:6",
"nodeType": "YulFunctionCall",
"src": "504:14:6"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "524:2:6",
"nodeType": "YulLiteral",
"src": "524:2:6",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "520:3:6",
"nodeType": "YulIdentifier",
"src": "520:3:6"
},
"nativeSrc": "520:7:6",
"nodeType": "YulFunctionCall",
"src": "520:7:6"
}
],
"functionName": {
"name": "and",
"nativeSrc": "500:3:6",
"nodeType": "YulIdentifier",
"src": "500:3:6"
},
"nativeSrc": "500:28:6",
"nodeType": "YulFunctionCall",
"src": "500:28:6"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "490:6:6",
"nodeType": "YulIdentifier",
"src": "490:6:6"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "432:102:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "463:5:6",
"nodeType": "YulTypedName",
"src": "463:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "473:6:6",
"nodeType": "YulTypedName",
"src": "473:6:6",
"type": ""
}
],
"src": "432:102:6"
},
{
"body": {
"nativeSrc": "632:285:6",
"nodeType": "YulBlock",
"src": "632:285:6",
"statements": [
{
"nativeSrc": "642:53:6",
"nodeType": "YulVariableDeclaration",
"src": "642:53:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "689:5:6",
"nodeType": "YulIdentifier",
"src": "689:5:6"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "656:32:6",
"nodeType": "YulIdentifier",
"src": "656:32:6"
},
"nativeSrc": "656:39:6",
"nodeType": "YulFunctionCall",
"src": "656:39:6"
},
"variables": [
{
"name": "length",
"nativeSrc": "646:6:6",
"nodeType": "YulTypedName",
"src": "646:6:6",
"type": ""
}
]
},
{
"nativeSrc": "704:78:6",
"nodeType": "YulAssignment",
"src": "704:78:6",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "770:3:6",
"nodeType": "YulIdentifier",
"src": "770:3:6"
},
{
"name": "length",
"nativeSrc": "775:6:6",
"nodeType": "YulIdentifier",
"src": "775:6:6"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "711:58:6",
"nodeType": "YulIdentifier",
"src": "711:58:6"
},
"nativeSrc": "711:71:6",
"nodeType": "YulFunctionCall",
"src": "711:71:6"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "704:3:6",
"nodeType": "YulIdentifier",
"src": "704:3:6"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "830:5:6",
"nodeType": "YulIdentifier",
"src": "830:5:6"
},
{
"kind": "number",
"nativeSrc": "837:4:6",
"nodeType": "YulLiteral",
"src": "837:4:6",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "826:3:6",
"nodeType": "YulIdentifier",
"src": "826:3:6"
},
"nativeSrc": "826:16:6",
"nodeType": "YulFunctionCall",
"src": "826:16:6"
},
{
"name": "pos",
"nativeSrc": "844:3:6",
"nodeType": "YulIdentifier",
"src": "844:3:6"
},
{
"name": "length",
"nativeSrc": "849:6:6",
"nodeType": "YulIdentifier",
"src": "849:6:6"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "791:34:6",
"nodeType": "YulIdentifier",
"src": "791:34:6"
},
"nativeSrc": "791:65:6",
"nodeType": "YulFunctionCall",
"src": "791:65:6"
},
"nativeSrc": "791:65:6",
"nodeType": "YulExpressionStatement",
"src": "791:65:6"
},
{
"nativeSrc": "865:46:6",
"nodeType": "YulAssignment",
"src": "865:46:6",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "876:3:6",
"nodeType": "YulIdentifier",
"src": "876:3:6"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "903:6:6",
"nodeType": "YulIdentifier",
"src": "903:6:6"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "881:21:6",
"nodeType": "YulIdentifier",
"src": "881:21:6"
},
"nativeSrc": "881:29:6",
"nodeType": "YulFunctionCall",
"src": "881:29:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "872:3:6",
"nodeType": "YulIdentifier",
"src": "872:3:6"
},
"nativeSrc": "872:39:6",
"nodeType": "YulFunctionCall",
"src": "872:39:6"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "865:3:6",
"nodeType": "YulIdentifier",
"src": "865:3:6"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "540:377:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "613:5:6",
"nodeType": "YulTypedName",
"src": "613:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "620:3:6",
"nodeType": "YulTypedName",
"src": "620:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "628:3:6",
"nodeType": "YulTypedName",
"src": "628:3:6",
"type": ""
}
],
"src": "540:377:6"
},
{
"body": {
"nativeSrc": "1041:195:6",
"nodeType": "YulBlock",
"src": "1041:195:6",
"statements": [
{
"nativeSrc": "1051:26:6",
"nodeType": "YulAssignment",
"src": "1051:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1063:9:6",
"nodeType": "YulIdentifier",
"src": "1063:9:6"
},
{
"kind": "number",
"nativeSrc": "1074:2:6",
"nodeType": "YulLiteral",
"src": "1074:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1059:3:6",
"nodeType": "YulIdentifier",
"src": "1059:3:6"
},
"nativeSrc": "1059:18:6",
"nodeType": "YulFunctionCall",
"src": "1059:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1051:4:6",
"nodeType": "YulIdentifier",
"src": "1051:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1098:9:6",
"nodeType": "YulIdentifier",
"src": "1098:9:6"
},
{
"kind": "number",
"nativeSrc": "1109:1:6",
"nodeType": "YulLiteral",
"src": "1109:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1094:3:6",
"nodeType": "YulIdentifier",
"src": "1094:3:6"
},
"nativeSrc": "1094:17:6",
"nodeType": "YulFunctionCall",
"src": "1094:17:6"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "1117:4:6",
"nodeType": "YulIdentifier",
"src": "1117:4:6"
},
{
"name": "headStart",
"nativeSrc": "1123:9:6",
"nodeType": "YulIdentifier",
"src": "1123:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1113:3:6",
"nodeType": "YulIdentifier",
"src": "1113:3:6"
},
"nativeSrc": "1113:20:6",
"nodeType": "YulFunctionCall",
"src": "1113:20:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1087:6:6",
"nodeType": "YulIdentifier",
"src": "1087:6:6"
},
"nativeSrc": "1087:47:6",
"nodeType": "YulFunctionCall",
"src": "1087:47:6"
},
"nativeSrc": "1087:47:6",
"nodeType": "YulExpressionStatement",
"src": "1087:47:6"
},
{
"nativeSrc": "1143:86:6",
"nodeType": "YulAssignment",
"src": "1143:86:6",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1215:6:6",
"nodeType": "YulIdentifier",
"src": "1215:6:6"
},
{
"name": "tail",
"nativeSrc": "1224:4:6",
"nodeType": "YulIdentifier",
"src": "1224:4:6"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "1151:63:6",
"nodeType": "YulIdentifier",
"src": "1151:63:6"
},
"nativeSrc": "1151:78:6",
"nodeType": "YulFunctionCall",
"src": "1151:78:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1143:4:6",
"nodeType": "YulIdentifier",
"src": "1143:4:6"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "923:313:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1013:9:6",
"nodeType": "YulTypedName",
"src": "1013:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1025:6:6",
"nodeType": "YulTypedName",
"src": "1025:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1036:4:6",
"nodeType": "YulTypedName",
"src": "1036:4:6",
"type": ""
}
],
"src": "923:313:6"
},
{
"body": {
"nativeSrc": "1282:35:6",
"nodeType": "YulBlock",
"src": "1282:35:6",
"statements": [
{
"nativeSrc": "1292:19:6",
"nodeType": "YulAssignment",
"src": "1292:19:6",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1308:2:6",
"nodeType": "YulLiteral",
"src": "1308:2:6",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "1302:5:6",
"nodeType": "YulIdentifier",
"src": "1302:5:6"
},
"nativeSrc": "1302:9:6",
"nodeType": "YulFunctionCall",
"src": "1302:9:6"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "1292:6:6",
"nodeType": "YulIdentifier",
"src": "1292:6:6"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "1242:75:6",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "1275:6:6",
"nodeType": "YulTypedName",
"src": "1275:6:6",
"type": ""
}
],
"src": "1242:75:6"
},
{
"body": {
"nativeSrc": "1412:28:6",
"nodeType": "YulBlock",
"src": "1412:28:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1429:1:6",
"nodeType": "YulLiteral",
"src": "1429:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1432:1:6",
"nodeType": "YulLiteral",
"src": "1432:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1422:6:6",
"nodeType": "YulIdentifier",
"src": "1422:6:6"
},
"nativeSrc": "1422:12:6",
"nodeType": "YulFunctionCall",
"src": "1422:12:6"
},
"nativeSrc": "1422:12:6",
"nodeType": "YulExpressionStatement",
"src": "1422:12:6"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1323:117:6",
"nodeType": "YulFunctionDefinition",
"src": "1323:117:6"
},
{
"body": {
"nativeSrc": "1535:28:6",
"nodeType": "YulBlock",
"src": "1535:28:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1552:1:6",
"nodeType": "YulLiteral",
"src": "1552:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1555:1:6",
"nodeType": "YulLiteral",
"src": "1555:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1545:6:6",
"nodeType": "YulIdentifier",
"src": "1545:6:6"
},
"nativeSrc": "1545:12:6",
"nodeType": "YulFunctionCall",
"src": "1545:12:6"
},
"nativeSrc": "1545:12:6",
"nodeType": "YulExpressionStatement",
"src": "1545:12:6"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "1446:117:6",
"nodeType": "YulFunctionDefinition",
"src": "1446:117:6"
},
{
"body": {
"nativeSrc": "1614:83:6",
"nodeType": "YulBlock",
"src": "1614:83:6",
"statements": [
{
"nativeSrc": "1624:67:6",
"nodeType": "YulAssignment",
"src": "1624:67:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1639:5:6",
"nodeType": "YulIdentifier",
"src": "1639:5:6"
},
{
"kind": "number",
"nativeSrc": "1646:44:6",
"nodeType": "YulLiteral",
"src": "1646:44:6",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1635:3:6",
"nodeType": "YulIdentifier",
"src": "1635:3:6"
},
"nativeSrc": "1635:56:6",
"nodeType": "YulFunctionCall",
"src": "1635:56:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1624:7:6",
"nodeType": "YulIdentifier",
"src": "1624:7:6"
}
]
}
]
},
"name": "cleanup_t_uint168",
"nativeSrc": "1569:128:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1596:5:6",
"nodeType": "YulTypedName",
"src": "1596:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1606:7:6",
"nodeType": "YulTypedName",
"src": "1606:7:6",
"type": ""
}
],
"src": "1569:128:6"
},
{
"body": {
"nativeSrc": "1746:79:6",
"nodeType": "YulBlock",
"src": "1746:79:6",
"statements": [
{
"body": {
"nativeSrc": "1803:16:6",
"nodeType": "YulBlock",
"src": "1803:16:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1812:1:6",
"nodeType": "YulLiteral",
"src": "1812:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1815:1:6",
"nodeType": "YulLiteral",
"src": "1815:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1805:6:6",
"nodeType": "YulIdentifier",
"src": "1805:6:6"
},
"nativeSrc": "1805:12:6",
"nodeType": "YulFunctionCall",
"src": "1805:12:6"
},
"nativeSrc": "1805:12:6",
"nodeType": "YulExpressionStatement",
"src": "1805:12:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1769:5:6",
"nodeType": "YulIdentifier",
"src": "1769:5:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1794:5:6",
"nodeType": "YulIdentifier",
"src": "1794:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint168",
"nativeSrc": "1776:17:6",
"nodeType": "YulIdentifier",
"src": "1776:17:6"
},
"nativeSrc": "1776:24:6",
"nodeType": "YulFunctionCall",
"src": "1776:24:6"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "1766:2:6",
"nodeType": "YulIdentifier",
"src": "1766:2:6"
},
"nativeSrc": "1766:35:6",
"nodeType": "YulFunctionCall",
"src": "1766:35:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1759:6:6",
"nodeType": "YulIdentifier",
"src": "1759:6:6"
},
"nativeSrc": "1759:43:6",
"nodeType": "YulFunctionCall",
"src": "1759:43:6"
},
"nativeSrc": "1756:63:6",
"nodeType": "YulIf",
"src": "1756:63:6"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "1703:122:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1739:5:6",
"nodeType": "YulTypedName",
"src": "1739:5:6",
"type": ""
}
],
"src": "1703:122:6"
},
{
"body": {
"nativeSrc": "1876:81:6",
"nodeType": "YulBlock",
"src": "1876:81:6",
"statements": [
{
"nativeSrc": "1886:65:6",
"nodeType": "YulAssignment",
"src": "1886:65:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1901:5:6",
"nodeType": "YulIdentifier",
"src": "1901:5:6"
},
{
"kind": "number",
"nativeSrc": "1908:42:6",
"nodeType": "YulLiteral",
"src": "1908:42:6",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1897:3:6",
"nodeType": "YulIdentifier",
"src": "1897:3:6"
},
"nativeSrc": "1897:54:6",
"nodeType": "YulFunctionCall",
"src": "1897:54:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1886:7:6",
"nodeType": "YulIdentifier",
"src": "1886:7:6"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "1831:126:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1858:5:6",
"nodeType": "YulTypedName",
"src": "1858:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1868:7:6",
"nodeType": "YulTypedName",
"src": "1868:7:6",
"type": ""
}
],
"src": "1831:126:6"
},
{
"body": {
"nativeSrc": "2008:51:6",
"nodeType": "YulBlock",
"src": "2008:51:6",
"statements": [
{
"nativeSrc": "2018:35:6",
"nodeType": "YulAssignment",
"src": "2018:35:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "2047:5:6",
"nodeType": "YulIdentifier",
"src": "2047:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "2029:17:6",
"nodeType": "YulIdentifier",
"src": "2029:17:6"
},
"nativeSrc": "2029:24:6",
"nodeType": "YulFunctionCall",
"src": "2029:24:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "2018:7:6",
"nodeType": "YulIdentifier",
"src": "2018:7:6"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "1963:96:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1990:5:6",
"nodeType": "YulTypedName",
"src": "1990:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "2000:7:6",
"nodeType": "YulTypedName",
"src": "2000:7:6",
"type": ""
}
],
"src": "1963:96:6"
},
{
"body": {
"nativeSrc": "2117:129:6",
"nodeType": "YulBlock",
"src": "2117:129:6",
"statements": [
{
"nativeSrc": "2127:29:6",
"nodeType": "YulAssignment",
"src": "2127:29:6",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2149:6:6",
"nodeType": "YulIdentifier",
"src": "2149:6:6"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2136:12:6",
"nodeType": "YulIdentifier",
"src": "2136:12:6"
},
"nativeSrc": "2136:20:6",
"nodeType": "YulFunctionCall",
"src": "2136:20:6"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2127:5:6",
"nodeType": "YulIdentifier",
"src": "2127:5:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2192:5:6",
"nodeType": "YulIdentifier",
"src": "2192:5:6"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "2165:26:6",
"nodeType": "YulIdentifier",
"src": "2165:26:6"
},
"nativeSrc": "2165:33:6",
"nodeType": "YulFunctionCall",
"src": "2165:33:6"
},
"nativeSrc": "2165:33:6",
"nodeType": "YulExpressionStatement",
"src": "2165:33:6"
},
{
"nativeSrc": "2207:33:6",
"nodeType": "YulAssignment",
"src": "2207:33:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "2234:5:6",
"nodeType": "YulIdentifier",
"src": "2234:5:6"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "2216:17:6",
"nodeType": "YulIdentifier",
"src": "2216:17:6"
},
"nativeSrc": "2216:24:6",
"nodeType": "YulFunctionCall",
"src": "2216:24:6"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2207:5:6",
"nodeType": "YulIdentifier",
"src": "2207:5:6"
}
]
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "2065:181:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2095:6:6",
"nodeType": "YulTypedName",
"src": "2095:6:6",
"type": ""
},
{
"name": "end",
"nativeSrc": "2103:3:6",
"nodeType": "YulTypedName",
"src": "2103:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2111:5:6",
"nodeType": "YulTypedName",
"src": "2111:5:6",
"type": ""
}
],
"src": "2065:181:6"
},
{
"body": {
"nativeSrc": "2297:32:6",
"nodeType": "YulBlock",
"src": "2297:32:6",
"statements": [
{
"nativeSrc": "2307:16:6",
"nodeType": "YulAssignment",
"src": "2307:16:6",
"value": {
"name": "value",
"nativeSrc": "2318:5:6",
"nodeType": "YulIdentifier",
"src": "2318:5:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "2307:7:6",
"nodeType": "YulIdentifier",
"src": "2307:7:6"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "2252:77:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2279:5:6",
"nodeType": "YulTypedName",
"src": "2279:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "2289:7:6",
"nodeType": "YulTypedName",
"src": "2289:7:6",
"type": ""
}
],
"src": "2252:77:6"
},
{
"body": {
"nativeSrc": "2378:79:6",
"nodeType": "YulBlock",
"src": "2378:79:6",
"statements": [
{
"body": {
"nativeSrc": "2435:16:6",
"nodeType": "YulBlock",
"src": "2435:16:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2444:1:6",
"nodeType": "YulLiteral",
"src": "2444:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2447:1:6",
"nodeType": "YulLiteral",
"src": "2447:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2437:6:6",
"nodeType": "YulIdentifier",
"src": "2437:6:6"
},
"nativeSrc": "2437:12:6",
"nodeType": "YulFunctionCall",
"src": "2437:12:6"
},
"nativeSrc": "2437:12:6",
"nodeType": "YulExpressionStatement",
"src": "2437:12:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "2401:5:6",
"nodeType": "YulIdentifier",
"src": "2401:5:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2426:5:6",
"nodeType": "YulIdentifier",
"src": "2426:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2408:17:6",
"nodeType": "YulIdentifier",
"src": "2408:17:6"
},
"nativeSrc": "2408:24:6",
"nodeType": "YulFunctionCall",
"src": "2408:24:6"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "2398:2:6",
"nodeType": "YulIdentifier",
"src": "2398:2:6"
},
"nativeSrc": "2398:35:6",
"nodeType": "YulFunctionCall",
"src": "2398:35:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2391:6:6",
"nodeType": "YulIdentifier",
"src": "2391:6:6"
},
"nativeSrc": "2391:43:6",
"nodeType": "YulFunctionCall",
"src": "2391:43:6"
},
"nativeSrc": "2388:63:6",
"nodeType": "YulIf",
"src": "2388:63:6"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "2335:122:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2371:5:6",
"nodeType": "YulTypedName",
"src": "2371:5:6",
"type": ""
}
],
"src": "2335:122:6"
},
{
"body": {
"nativeSrc": "2515:87:6",
"nodeType": "YulBlock",
"src": "2515:87:6",
"statements": [
{
"nativeSrc": "2525:29:6",
"nodeType": "YulAssignment",
"src": "2525:29:6",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2547:6:6",
"nodeType": "YulIdentifier",
"src": "2547:6:6"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2534:12:6",
"nodeType": "YulIdentifier",
"src": "2534:12:6"
},
"nativeSrc": "2534:20:6",
"nodeType": "YulFunctionCall",
"src": "2534:20:6"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2525:5:6",
"nodeType": "YulIdentifier",
"src": "2525:5:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2590:5:6",
"nodeType": "YulIdentifier",
"src": "2590:5:6"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "2563:26:6",
"nodeType": "YulIdentifier",
"src": "2563:26:6"
},
"nativeSrc": "2563:33:6",
"nodeType": "YulFunctionCall",
"src": "2563:33:6"
},
"nativeSrc": "2563:33:6",
"nodeType": "YulExpressionStatement",
"src": "2563:33:6"
}
]
},
"name": "abi_decode_t_uint256",
"nativeSrc": "2463:139:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2493:6:6",
"nodeType": "YulTypedName",
"src": "2493:6:6",
"type": ""
},
{
"name": "end",
"nativeSrc": "2501:3:6",
"nodeType": "YulTypedName",
"src": "2501:3:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2509:5:6",
"nodeType": "YulTypedName",
"src": "2509:5:6",
"type": ""
}
],
"src": "2463:139:6"
},
{
"body": {
"nativeSrc": "2691:391:6",
"nodeType": "YulBlock",
"src": "2691:391:6",
"statements": [
{
"body": {
"nativeSrc": "2737:83:6",
"nodeType": "YulBlock",
"src": "2737:83:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "2739:77:6",
"nodeType": "YulIdentifier",
"src": "2739:77:6"
},
"nativeSrc": "2739:79:6",
"nodeType": "YulFunctionCall",
"src": "2739:79:6"
},
"nativeSrc": "2739:79:6",
"nodeType": "YulExpressionStatement",
"src": "2739:79:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "2712:7:6",
"nodeType": "YulIdentifier",
"src": "2712:7:6"
},
{
"name": "headStart",
"nativeSrc": "2721:9:6",
"nodeType": "YulIdentifier",
"src": "2721:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "2708:3:6",
"nodeType": "YulIdentifier",
"src": "2708:3:6"
},
"nativeSrc": "2708:23:6",
"nodeType": "YulFunctionCall",
"src": "2708:23:6"
},
{
"kind": "number",
"nativeSrc": "2733:2:6",
"nodeType": "YulLiteral",
"src": "2733:2:6",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "2704:3:6",
"nodeType": "YulIdentifier",
"src": "2704:3:6"
},
"nativeSrc": "2704:32:6",
"nodeType": "YulFunctionCall",
"src": "2704:32:6"
},
"nativeSrc": "2701:119:6",
"nodeType": "YulIf",
"src": "2701:119:6"
},
{
"nativeSrc": "2830:117:6",
"nodeType": "YulBlock",
"src": "2830:117:6",
"statements": [
{
"nativeSrc": "2845:15:6",
"nodeType": "YulVariableDeclaration",
"src": "2845:15:6",
"value": {
"kind": "number",
"nativeSrc": "2859:1:6",
"nodeType": "YulLiteral",
"src": "2859:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2849:6:6",
"nodeType": "YulTypedName",
"src": "2849:6:6",
"type": ""
}
]
},
{
"nativeSrc": "2874:63:6",
"nodeType": "YulAssignment",
"src": "2874:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2909:9:6",
"nodeType": "YulIdentifier",
"src": "2909:9:6"
},
{
"name": "offset",
"nativeSrc": "2920:6:6",
"nodeType": "YulIdentifier",
"src": "2920:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2905:3:6",
"nodeType": "YulIdentifier",
"src": "2905:3:6"
},
"nativeSrc": "2905:22:6",
"nodeType": "YulFunctionCall",
"src": "2905:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "2929:7:6",
"nodeType": "YulIdentifier",
"src": "2929:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "2884:20:6",
"nodeType": "YulIdentifier",
"src": "2884:20:6"
},
"nativeSrc": "2884:53:6",
"nodeType": "YulFunctionCall",
"src": "2884:53:6"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "2874:6:6",
"nodeType": "YulIdentifier",
"src": "2874:6:6"
}
]
}
]
},
{
"nativeSrc": "2957:118:6",
"nodeType": "YulBlock",
"src": "2957:118:6",
"statements": [
{
"nativeSrc": "2972:16:6",
"nodeType": "YulVariableDeclaration",
"src": "2972:16:6",
"value": {
"kind": "number",
"nativeSrc": "2986:2:6",
"nodeType": "YulLiteral",
"src": "2986:2:6",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2976:6:6",
"nodeType": "YulTypedName",
"src": "2976:6:6",
"type": ""
}
]
},
{
"nativeSrc": "3002:63:6",
"nodeType": "YulAssignment",
"src": "3002:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3037:9:6",
"nodeType": "YulIdentifier",
"src": "3037:9:6"
},
{
"name": "offset",
"nativeSrc": "3048:6:6",
"nodeType": "YulIdentifier",
"src": "3048:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3033:3:6",
"nodeType": "YulIdentifier",
"src": "3033:3:6"
},
"nativeSrc": "3033:22:6",
"nodeType": "YulFunctionCall",
"src": "3033:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "3057:7:6",
"nodeType": "YulIdentifier",
"src": "3057:7:6"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "3012:20:6",
"nodeType": "YulIdentifier",
"src": "3012:20:6"
},
"nativeSrc": "3012:53:6",
"nodeType": "YulFunctionCall",
"src": "3012:53:6"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "3002:6:6",
"nodeType": "YulIdentifier",
"src": "3002:6:6"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nativeSrc": "2608:474:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "2653:9:6",
"nodeType": "YulTypedName",
"src": "2653:9:6",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "2664:7:6",
"nodeType": "YulTypedName",
"src": "2664:7:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "2676:6:6",
"nodeType": "YulTypedName",
"src": "2676:6:6",
"type": ""
},
{
"name": "value1",
"nativeSrc": "2684:6:6",
"nodeType": "YulTypedName",
"src": "2684:6:6",
"type": ""
}
],
"src": "2608:474:6"
},
{
"body": {
"nativeSrc": "3130:48:6",
"nodeType": "YulBlock",
"src": "3130:48:6",
"statements": [
{
"nativeSrc": "3140:32:6",
"nodeType": "YulAssignment",
"src": "3140:32:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "3165:5:6",
"nodeType": "YulIdentifier",
"src": "3165:5:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3158:6:6",
"nodeType": "YulIdentifier",
"src": "3158:6:6"
},
"nativeSrc": "3158:13:6",
"nodeType": "YulFunctionCall",
"src": "3158:13:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3151:6:6",
"nodeType": "YulIdentifier",
"src": "3151:6:6"
},
"nativeSrc": "3151:21:6",
"nodeType": "YulFunctionCall",
"src": "3151:21:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "3140:7:6",
"nodeType": "YulIdentifier",
"src": "3140:7:6"
}
]
}
]
},
"name": "cleanup_t_bool",
"nativeSrc": "3088:90:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3112:5:6",
"nodeType": "YulTypedName",
"src": "3112:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "3122:7:6",
"nodeType": "YulTypedName",
"src": "3122:7:6",
"type": ""
}
],
"src": "3088:90:6"
},
{
"body": {
"nativeSrc": "3243:50:6",
"nodeType": "YulBlock",
"src": "3243:50:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3260:3:6",
"nodeType": "YulIdentifier",
"src": "3260:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3280:5:6",
"nodeType": "YulIdentifier",
"src": "3280:5:6"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "3265:14:6",
"nodeType": "YulIdentifier",
"src": "3265:14:6"
},
"nativeSrc": "3265:21:6",
"nodeType": "YulFunctionCall",
"src": "3265:21:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3253:6:6",
"nodeType": "YulIdentifier",
"src": "3253:6:6"
},
"nativeSrc": "3253:34:6",
"nodeType": "YulFunctionCall",
"src": "3253:34:6"
},
"nativeSrc": "3253:34:6",
"nodeType": "YulExpressionStatement",
"src": "3253:34:6"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3184:109:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3231:5:6",
"nodeType": "YulTypedName",
"src": "3231:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3238:3:6",
"nodeType": "YulTypedName",
"src": "3238:3:6",
"type": ""
}
],
"src": "3184:109:6"
},
{
"body": {
"nativeSrc": "3391:118:6",
"nodeType": "YulBlock",
"src": "3391:118:6",
"statements": [
{
"nativeSrc": "3401:26:6",
"nodeType": "YulAssignment",
"src": "3401:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3413:9:6",
"nodeType": "YulIdentifier",
"src": "3413:9:6"
},
{
"kind": "number",
"nativeSrc": "3424:2:6",
"nodeType": "YulLiteral",
"src": "3424:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3409:3:6",
"nodeType": "YulIdentifier",
"src": "3409:3:6"
},
"nativeSrc": "3409:18:6",
"nodeType": "YulFunctionCall",
"src": "3409:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "3401:4:6",
"nodeType": "YulIdentifier",
"src": "3401:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3475:6:6",
"nodeType": "YulIdentifier",
"src": "3475:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3488:9:6",
"nodeType": "YulIdentifier",
"src": "3488:9:6"
},
{
"kind": "number",
"nativeSrc": "3499:1:6",
"nodeType": "YulLiteral",
"src": "3499:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3484:3:6",
"nodeType": "YulIdentifier",
"src": "3484:3:6"
},
"nativeSrc": "3484:17:6",
"nodeType": "YulFunctionCall",
"src": "3484:17:6"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3437:37:6",
"nodeType": "YulIdentifier",
"src": "3437:37:6"
},
"nativeSrc": "3437:65:6",
"nodeType": "YulFunctionCall",
"src": "3437:65:6"
},
"nativeSrc": "3437:65:6",
"nodeType": "YulExpressionStatement",
"src": "3437:65:6"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nativeSrc": "3299:210:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3363:9:6",
"nodeType": "YulTypedName",
"src": "3363:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "3375:6:6",
"nodeType": "YulTypedName",
"src": "3375:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "3386:4:6",
"nodeType": "YulTypedName",
"src": "3386:4:6",
"type": ""
}
],
"src": "3299:210:6"
},
{
"body": {
"nativeSrc": "3580:53:6",
"nodeType": "YulBlock",
"src": "3580:53:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3597:3:6",
"nodeType": "YulIdentifier",
"src": "3597:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3620:5:6",
"nodeType": "YulIdentifier",
"src": "3620:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "3602:17:6",
"nodeType": "YulIdentifier",
"src": "3602:17:6"
},
"nativeSrc": "3602:24:6",
"nodeType": "YulFunctionCall",
"src": "3602:24:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3590:6:6",
"nodeType": "YulIdentifier",
"src": "3590:6:6"
},
"nativeSrc": "3590:37:6",
"nodeType": "YulFunctionCall",
"src": "3590:37:6"
},
"nativeSrc": "3590:37:6",
"nodeType": "YulExpressionStatement",
"src": "3590:37:6"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "3515:118:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3568:5:6",
"nodeType": "YulTypedName",
"src": "3568:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3575:3:6",
"nodeType": "YulTypedName",
"src": "3575:3:6",
"type": ""
}
],
"src": "3515:118:6"
},
{
"body": {
"nativeSrc": "3737:124:6",
"nodeType": "YulBlock",
"src": "3737:124:6",
"statements": [
{
"nativeSrc": "3747:26:6",
"nodeType": "YulAssignment",
"src": "3747:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3759:9:6",
"nodeType": "YulIdentifier",
"src": "3759:9:6"
},
{
"kind": "number",
"nativeSrc": "3770:2:6",
"nodeType": "YulLiteral",
"src": "3770:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3755:3:6",
"nodeType": "YulIdentifier",
"src": "3755:3:6"
},
"nativeSrc": "3755:18:6",
"nodeType": "YulFunctionCall",
"src": "3755:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "3747:4:6",
"nodeType": "YulIdentifier",
"src": "3747:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3827:6:6",
"nodeType": "YulIdentifier",
"src": "3827:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3840:9:6",
"nodeType": "YulIdentifier",
"src": "3840:9:6"
},
{
"kind": "number",
"nativeSrc": "3851:1:6",
"nodeType": "YulLiteral",
"src": "3851:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3836:3:6",
"nodeType": "YulIdentifier",
"src": "3836:3:6"
},
"nativeSrc": "3836:17:6",
"nodeType": "YulFunctionCall",
"src": "3836:17:6"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "3783:43:6",
"nodeType": "YulIdentifier",
"src": "3783:43:6"
},
"nativeSrc": "3783:71:6",
"nodeType": "YulFunctionCall",
"src": "3783:71:6"
},
"nativeSrc": "3783:71:6",
"nodeType": "YulExpressionStatement",
"src": "3783:71:6"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "3639:222:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3709:9:6",
"nodeType": "YulTypedName",
"src": "3709:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "3721:6:6",
"nodeType": "YulTypedName",
"src": "3721:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "3732:4:6",
"nodeType": "YulTypedName",
"src": "3732:4:6",
"type": ""
}
],
"src": "3639:222:6"
},
{
"body": {
"nativeSrc": "3967:519:6",
"nodeType": "YulBlock",
"src": "3967:519:6",
"statements": [
{
"body": {
"nativeSrc": "4013:83:6",
"nodeType": "YulBlock",
"src": "4013:83:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "4015:77:6",
"nodeType": "YulIdentifier",
"src": "4015:77:6"
},
"nativeSrc": "4015:79:6",
"nodeType": "YulFunctionCall",
"src": "4015:79:6"
},
"nativeSrc": "4015:79:6",
"nodeType": "YulExpressionStatement",
"src": "4015:79:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "3988:7:6",
"nodeType": "YulIdentifier",
"src": "3988:7:6"
},
{
"name": "headStart",
"nativeSrc": "3997:9:6",
"nodeType": "YulIdentifier",
"src": "3997:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "3984:3:6",
"nodeType": "YulIdentifier",
"src": "3984:3:6"
},
"nativeSrc": "3984:23:6",
"nodeType": "YulFunctionCall",
"src": "3984:23:6"
},
{
"kind": "number",
"nativeSrc": "4009:2:6",
"nodeType": "YulLiteral",
"src": "4009:2:6",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3980:3:6",
"nodeType": "YulIdentifier",
"src": "3980:3:6"
},
"nativeSrc": "3980:32:6",
"nodeType": "YulFunctionCall",
"src": "3980:32:6"
},
"nativeSrc": "3977:119:6",
"nodeType": "YulIf",
"src": "3977:119:6"
},
{
"nativeSrc": "4106:117:6",
"nodeType": "YulBlock",
"src": "4106:117:6",
"statements": [
{
"nativeSrc": "4121:15:6",
"nodeType": "YulVariableDeclaration",
"src": "4121:15:6",
"value": {
"kind": "number",
"nativeSrc": "4135:1:6",
"nodeType": "YulLiteral",
"src": "4135:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4125:6:6",
"nodeType": "YulTypedName",
"src": "4125:6:6",
"type": ""
}
]
},
{
"nativeSrc": "4150:63:6",
"nodeType": "YulAssignment",
"src": "4150:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4185:9:6",
"nodeType": "YulIdentifier",
"src": "4185:9:6"
},
{
"name": "offset",
"nativeSrc": "4196:6:6",
"nodeType": "YulIdentifier",
"src": "4196:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4181:3:6",
"nodeType": "YulIdentifier",
"src": "4181:3:6"
},
"nativeSrc": "4181:22:6",
"nodeType": "YulFunctionCall",
"src": "4181:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "4205:7:6",
"nodeType": "YulIdentifier",
"src": "4205:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4160:20:6",
"nodeType": "YulIdentifier",
"src": "4160:20:6"
},
"nativeSrc": "4160:53:6",
"nodeType": "YulFunctionCall",
"src": "4160:53:6"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "4150:6:6",
"nodeType": "YulIdentifier",
"src": "4150:6:6"
}
]
}
]
},
{
"nativeSrc": "4233:118:6",
"nodeType": "YulBlock",
"src": "4233:118:6",
"statements": [
{
"nativeSrc": "4248:16:6",
"nodeType": "YulVariableDeclaration",
"src": "4248:16:6",
"value": {
"kind": "number",
"nativeSrc": "4262:2:6",
"nodeType": "YulLiteral",
"src": "4262:2:6",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4252:6:6",
"nodeType": "YulTypedName",
"src": "4252:6:6",
"type": ""
}
]
},
{
"nativeSrc": "4278:63:6",
"nodeType": "YulAssignment",
"src": "4278:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4313:9:6",
"nodeType": "YulIdentifier",
"src": "4313:9:6"
},
{
"name": "offset",
"nativeSrc": "4324:6:6",
"nodeType": "YulIdentifier",
"src": "4324:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4309:3:6",
"nodeType": "YulIdentifier",
"src": "4309:3:6"
},
"nativeSrc": "4309:22:6",
"nodeType": "YulFunctionCall",
"src": "4309:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "4333:7:6",
"nodeType": "YulIdentifier",
"src": "4333:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4288:20:6",
"nodeType": "YulIdentifier",
"src": "4288:20:6"
},
"nativeSrc": "4288:53:6",
"nodeType": "YulFunctionCall",
"src": "4288:53:6"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "4278:6:6",
"nodeType": "YulIdentifier",
"src": "4278:6:6"
}
]
}
]
},
{
"nativeSrc": "4361:118:6",
"nodeType": "YulBlock",
"src": "4361:118:6",
"statements": [
{
"nativeSrc": "4376:16:6",
"nodeType": "YulVariableDeclaration",
"src": "4376:16:6",
"value": {
"kind": "number",
"nativeSrc": "4390:2:6",
"nodeType": "YulLiteral",
"src": "4390:2:6",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4380:6:6",
"nodeType": "YulTypedName",
"src": "4380:6:6",
"type": ""
}
]
},
{
"nativeSrc": "4406:63:6",
"nodeType": "YulAssignment",
"src": "4406:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4441:9:6",
"nodeType": "YulIdentifier",
"src": "4441:9:6"
},
{
"name": "offset",
"nativeSrc": "4452:6:6",
"nodeType": "YulIdentifier",
"src": "4452:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4437:3:6",
"nodeType": "YulIdentifier",
"src": "4437:3:6"
},
"nativeSrc": "4437:22:6",
"nodeType": "YulFunctionCall",
"src": "4437:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "4461:7:6",
"nodeType": "YulIdentifier",
"src": "4461:7:6"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "4416:20:6",
"nodeType": "YulIdentifier",
"src": "4416:20:6"
},
"nativeSrc": "4416:53:6",
"nodeType": "YulFunctionCall",
"src": "4416:53:6"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "4406:6:6",
"nodeType": "YulIdentifier",
"src": "4406:6:6"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256",
"nativeSrc": "3867:619:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3921:9:6",
"nodeType": "YulTypedName",
"src": "3921:9:6",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "3932:7:6",
"nodeType": "YulTypedName",
"src": "3932:7:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "3944:6:6",
"nodeType": "YulTypedName",
"src": "3944:6:6",
"type": ""
},
{
"name": "value1",
"nativeSrc": "3952:6:6",
"nodeType": "YulTypedName",
"src": "3952:6:6",
"type": ""
},
{
"name": "value2",
"nativeSrc": "3960:6:6",
"nodeType": "YulTypedName",
"src": "3960:6:6",
"type": ""
}
],
"src": "3867:619:6"
},
{
"body": {
"nativeSrc": "4535:43:6",
"nodeType": "YulBlock",
"src": "4535:43:6",
"statements": [
{
"nativeSrc": "4545:27:6",
"nodeType": "YulAssignment",
"src": "4545:27:6",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "4560:5:6",
"nodeType": "YulIdentifier",
"src": "4560:5:6"
},
{
"kind": "number",
"nativeSrc": "4567:4:6",
"nodeType": "YulLiteral",
"src": "4567:4:6",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4556:3:6",
"nodeType": "YulIdentifier",
"src": "4556:3:6"
},
"nativeSrc": "4556:16:6",
"nodeType": "YulFunctionCall",
"src": "4556:16:6"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "4545:7:6",
"nodeType": "YulIdentifier",
"src": "4545:7:6"
}
]
}
]
},
"name": "cleanup_t_uint8",
"nativeSrc": "4492:86:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4517:5:6",
"nodeType": "YulTypedName",
"src": "4517:5:6",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "4527:7:6",
"nodeType": "YulTypedName",
"src": "4527:7:6",
"type": ""
}
],
"src": "4492:86:6"
},
{
"body": {
"nativeSrc": "4645:51:6",
"nodeType": "YulBlock",
"src": "4645:51:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "4662:3:6",
"nodeType": "YulIdentifier",
"src": "4662:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "4683:5:6",
"nodeType": "YulIdentifier",
"src": "4683:5:6"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "4667:15:6",
"nodeType": "YulIdentifier",
"src": "4667:15:6"
},
"nativeSrc": "4667:22:6",
"nodeType": "YulFunctionCall",
"src": "4667:22:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4655:6:6",
"nodeType": "YulIdentifier",
"src": "4655:6:6"
},
"nativeSrc": "4655:35:6",
"nodeType": "YulFunctionCall",
"src": "4655:35:6"
},
"nativeSrc": "4655:35:6",
"nodeType": "YulExpressionStatement",
"src": "4655:35:6"
}
]
},
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "4584:112:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4633:5:6",
"nodeType": "YulTypedName",
"src": "4633:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "4640:3:6",
"nodeType": "YulTypedName",
"src": "4640:3:6",
"type": ""
}
],
"src": "4584:112:6"
},
{
"body": {
"nativeSrc": "4796:120:6",
"nodeType": "YulBlock",
"src": "4796:120:6",
"statements": [
{
"nativeSrc": "4806:26:6",
"nodeType": "YulAssignment",
"src": "4806:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "4818:9:6",
"nodeType": "YulIdentifier",
"src": "4818:9:6"
},
{
"kind": "number",
"nativeSrc": "4829:2:6",
"nodeType": "YulLiteral",
"src": "4829:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4814:3:6",
"nodeType": "YulIdentifier",
"src": "4814:3:6"
},
"nativeSrc": "4814:18:6",
"nodeType": "YulFunctionCall",
"src": "4814:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "4806:4:6",
"nodeType": "YulIdentifier",
"src": "4806:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "4882:6:6",
"nodeType": "YulIdentifier",
"src": "4882:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4895:9:6",
"nodeType": "YulIdentifier",
"src": "4895:9:6"
},
{
"kind": "number",
"nativeSrc": "4906:1:6",
"nodeType": "YulLiteral",
"src": "4906:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4891:3:6",
"nodeType": "YulIdentifier",
"src": "4891:3:6"
},
"nativeSrc": "4891:17:6",
"nodeType": "YulFunctionCall",
"src": "4891:17:6"
}
],
"functionName": {
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "4842:39:6",
"nodeType": "YulIdentifier",
"src": "4842:39:6"
},
"nativeSrc": "4842:67:6",
"nodeType": "YulFunctionCall",
"src": "4842:67:6"
},
"nativeSrc": "4842:67:6",
"nodeType": "YulExpressionStatement",
"src": "4842:67:6"
}
]
},
"name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
"nativeSrc": "4702:214:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4768:9:6",
"nodeType": "YulTypedName",
"src": "4768:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "4780:6:6",
"nodeType": "YulTypedName",
"src": "4780:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "4791:4:6",
"nodeType": "YulTypedName",
"src": "4791:4:6",
"type": ""
}
],
"src": "4702:214:6"
},
{
"body": {
"nativeSrc": "4988:263:6",
"nodeType": "YulBlock",
"src": "4988:263:6",
"statements": [
{
"body": {
"nativeSrc": "5034:83:6",
"nodeType": "YulBlock",
"src": "5034:83:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "5036:77:6",
"nodeType": "YulIdentifier",
"src": "5036:77:6"
},
"nativeSrc": "5036:79:6",
"nodeType": "YulFunctionCall",
"src": "5036:79:6"
},
"nativeSrc": "5036:79:6",
"nodeType": "YulExpressionStatement",
"src": "5036:79:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "5009:7:6",
"nodeType": "YulIdentifier",
"src": "5009:7:6"
},
{
"name": "headStart",
"nativeSrc": "5018:9:6",
"nodeType": "YulIdentifier",
"src": "5018:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "5005:3:6",
"nodeType": "YulIdentifier",
"src": "5005:3:6"
},
"nativeSrc": "5005:23:6",
"nodeType": "YulFunctionCall",
"src": "5005:23:6"
},
{
"kind": "number",
"nativeSrc": "5030:2:6",
"nodeType": "YulLiteral",
"src": "5030:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "5001:3:6",
"nodeType": "YulIdentifier",
"src": "5001:3:6"
},
"nativeSrc": "5001:32:6",
"nodeType": "YulFunctionCall",
"src": "5001:32:6"
},
"nativeSrc": "4998:119:6",
"nodeType": "YulIf",
"src": "4998:119:6"
},
{
"nativeSrc": "5127:117:6",
"nodeType": "YulBlock",
"src": "5127:117:6",
"statements": [
{
"nativeSrc": "5142:15:6",
"nodeType": "YulVariableDeclaration",
"src": "5142:15:6",
"value": {
"kind": "number",
"nativeSrc": "5156:1:6",
"nodeType": "YulLiteral",
"src": "5156:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5146:6:6",
"nodeType": "YulTypedName",
"src": "5146:6:6",
"type": ""
}
]
},
{
"nativeSrc": "5171:63:6",
"nodeType": "YulAssignment",
"src": "5171:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5206:9:6",
"nodeType": "YulIdentifier",
"src": "5206:9:6"
},
{
"name": "offset",
"nativeSrc": "5217:6:6",
"nodeType": "YulIdentifier",
"src": "5217:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5202:3:6",
"nodeType": "YulIdentifier",
"src": "5202:3:6"
},
"nativeSrc": "5202:22:6",
"nodeType": "YulFunctionCall",
"src": "5202:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "5226:7:6",
"nodeType": "YulIdentifier",
"src": "5226:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "5181:20:6",
"nodeType": "YulIdentifier",
"src": "5181:20:6"
},
"nativeSrc": "5181:53:6",
"nodeType": "YulFunctionCall",
"src": "5181:53:6"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "5171:6:6",
"nodeType": "YulIdentifier",
"src": "5171:6:6"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "4922:329:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4958:9:6",
"nodeType": "YulTypedName",
"src": "4958:9:6",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "4969:7:6",
"nodeType": "YulTypedName",
"src": "4969:7:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "4981:6:6",
"nodeType": "YulTypedName",
"src": "4981:6:6",
"type": ""
}
],
"src": "4922:329:6"
},
{
"body": {
"nativeSrc": "5340:391:6",
"nodeType": "YulBlock",
"src": "5340:391:6",
"statements": [
{
"body": {
"nativeSrc": "5386:83:6",
"nodeType": "YulBlock",
"src": "5386:83:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "5388:77:6",
"nodeType": "YulIdentifier",
"src": "5388:77:6"
},
"nativeSrc": "5388:79:6",
"nodeType": "YulFunctionCall",
"src": "5388:79:6"
},
"nativeSrc": "5388:79:6",
"nodeType": "YulExpressionStatement",
"src": "5388:79:6"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "5361:7:6",
"nodeType": "YulIdentifier",
"src": "5361:7:6"
},
{
"name": "headStart",
"nativeSrc": "5370:9:6",
"nodeType": "YulIdentifier",
"src": "5370:9:6"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "5357:3:6",
"nodeType": "YulIdentifier",
"src": "5357:3:6"
},
"nativeSrc": "5357:23:6",
"nodeType": "YulFunctionCall",
"src": "5357:23:6"
},
{
"kind": "number",
"nativeSrc": "5382:2:6",
"nodeType": "YulLiteral",
"src": "5382:2:6",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "5353:3:6",
"nodeType": "YulIdentifier",
"src": "5353:3:6"
},
"nativeSrc": "5353:32:6",
"nodeType": "YulFunctionCall",
"src": "5353:32:6"
},
"nativeSrc": "5350:119:6",
"nodeType": "YulIf",
"src": "5350:119:6"
},
{
"nativeSrc": "5479:117:6",
"nodeType": "YulBlock",
"src": "5479:117:6",
"statements": [
{
"nativeSrc": "5494:15:6",
"nodeType": "YulVariableDeclaration",
"src": "5494:15:6",
"value": {
"kind": "number",
"nativeSrc": "5508:1:6",
"nodeType": "YulLiteral",
"src": "5508:1:6",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5498:6:6",
"nodeType": "YulTypedName",
"src": "5498:6:6",
"type": ""
}
]
},
{
"nativeSrc": "5523:63:6",
"nodeType": "YulAssignment",
"src": "5523:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5558:9:6",
"nodeType": "YulIdentifier",
"src": "5558:9:6"
},
{
"name": "offset",
"nativeSrc": "5569:6:6",
"nodeType": "YulIdentifier",
"src": "5569:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5554:3:6",
"nodeType": "YulIdentifier",
"src": "5554:3:6"
},
"nativeSrc": "5554:22:6",
"nodeType": "YulFunctionCall",
"src": "5554:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "5578:7:6",
"nodeType": "YulIdentifier",
"src": "5578:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "5533:20:6",
"nodeType": "YulIdentifier",
"src": "5533:20:6"
},
"nativeSrc": "5533:53:6",
"nodeType": "YulFunctionCall",
"src": "5533:53:6"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "5523:6:6",
"nodeType": "YulIdentifier",
"src": "5523:6:6"
}
]
}
]
},
{
"nativeSrc": "5606:118:6",
"nodeType": "YulBlock",
"src": "5606:118:6",
"statements": [
{
"nativeSrc": "5621:16:6",
"nodeType": "YulVariableDeclaration",
"src": "5621:16:6",
"value": {
"kind": "number",
"nativeSrc": "5635:2:6",
"nodeType": "YulLiteral",
"src": "5635:2:6",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5625:6:6",
"nodeType": "YulTypedName",
"src": "5625:6:6",
"type": ""
}
]
},
{
"nativeSrc": "5651:63:6",
"nodeType": "YulAssignment",
"src": "5651:63:6",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5686:9:6",
"nodeType": "YulIdentifier",
"src": "5686:9:6"
},
{
"name": "offset",
"nativeSrc": "5697:6:6",
"nodeType": "YulIdentifier",
"src": "5697:6:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5682:3:6",
"nodeType": "YulIdentifier",
"src": "5682:3:6"
},
"nativeSrc": "5682:22:6",
"nodeType": "YulFunctionCall",
"src": "5682:22:6"
},
{
"name": "dataEnd",
"nativeSrc": "5706:7:6",
"nodeType": "YulIdentifier",
"src": "5706:7:6"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "5661:20:6",
"nodeType": "YulIdentifier",
"src": "5661:20:6"
},
"nativeSrc": "5661:53:6",
"nodeType": "YulFunctionCall",
"src": "5661:53:6"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "5651:6:6",
"nodeType": "YulIdentifier",
"src": "5651:6:6"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nativeSrc": "5257:474:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5302:9:6",
"nodeType": "YulTypedName",
"src": "5302:9:6",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "5313:7:6",
"nodeType": "YulTypedName",
"src": "5313:7:6",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "5325:6:6",
"nodeType": "YulTypedName",
"src": "5325:6:6",
"type": ""
},
{
"name": "value1",
"nativeSrc": "5333:6:6",
"nodeType": "YulTypedName",
"src": "5333:6:6",
"type": ""
}
],
"src": "5257:474:6"
},
{
"body": {
"nativeSrc": "5765:152:6",
"nodeType": "YulBlock",
"src": "5765:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5782:1:6",
"nodeType": "YulLiteral",
"src": "5782:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5785:77:6",
"nodeType": "YulLiteral",
"src": "5785:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5775:6:6",
"nodeType": "YulIdentifier",
"src": "5775:6:6"
},
"nativeSrc": "5775:88:6",
"nodeType": "YulFunctionCall",
"src": "5775:88:6"
},
"nativeSrc": "5775:88:6",
"nodeType": "YulExpressionStatement",
"src": "5775:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5879:1:6",
"nodeType": "YulLiteral",
"src": "5879:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "5882:4:6",
"nodeType": "YulLiteral",
"src": "5882:4:6",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5872:6:6",
"nodeType": "YulIdentifier",
"src": "5872:6:6"
},
"nativeSrc": "5872:15:6",
"nodeType": "YulFunctionCall",
"src": "5872:15:6"
},
"nativeSrc": "5872:15:6",
"nodeType": "YulExpressionStatement",
"src": "5872:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5903:1:6",
"nodeType": "YulLiteral",
"src": "5903:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5906:4:6",
"nodeType": "YulLiteral",
"src": "5906:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "5896:6:6",
"nodeType": "YulIdentifier",
"src": "5896:6:6"
},
"nativeSrc": "5896:15:6",
"nodeType": "YulFunctionCall",
"src": "5896:15:6"
},
"nativeSrc": "5896:15:6",
"nodeType": "YulExpressionStatement",
"src": "5896:15:6"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "5737:180:6",
"nodeType": "YulFunctionDefinition",
"src": "5737:180:6"
},
{
"body": {
"nativeSrc": "5974:269:6",
"nodeType": "YulBlock",
"src": "5974:269:6",
"statements": [
{
"nativeSrc": "5984:22:6",
"nodeType": "YulAssignment",
"src": "5984:22:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "5998:4:6",
"nodeType": "YulIdentifier",
"src": "5998:4:6"
},
{
"kind": "number",
"nativeSrc": "6004:1:6",
"nodeType": "YulLiteral",
"src": "6004:1:6",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "5994:3:6",
"nodeType": "YulIdentifier",
"src": "5994:3:6"
},
"nativeSrc": "5994:12:6",
"nodeType": "YulFunctionCall",
"src": "5994:12:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "5984:6:6",
"nodeType": "YulIdentifier",
"src": "5984:6:6"
}
]
},
{
"nativeSrc": "6015:38:6",
"nodeType": "YulVariableDeclaration",
"src": "6015:38:6",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "6045:4:6",
"nodeType": "YulIdentifier",
"src": "6045:4:6"
},
{
"kind": "number",
"nativeSrc": "6051:1:6",
"nodeType": "YulLiteral",
"src": "6051:1:6",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "6041:3:6",
"nodeType": "YulIdentifier",
"src": "6041:3:6"
},
"nativeSrc": "6041:12:6",
"nodeType": "YulFunctionCall",
"src": "6041:12:6"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "6019:18:6",
"nodeType": "YulTypedName",
"src": "6019:18:6",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "6092:51:6",
"nodeType": "YulBlock",
"src": "6092:51:6",
"statements": [
{
"nativeSrc": "6106:27:6",
"nodeType": "YulAssignment",
"src": "6106:27:6",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "6120:6:6",
"nodeType": "YulIdentifier",
"src": "6120:6:6"
},
{
"kind": "number",
"nativeSrc": "6128:4:6",
"nodeType": "YulLiteral",
"src": "6128:4:6",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "6116:3:6",
"nodeType": "YulIdentifier",
"src": "6116:3:6"
},
"nativeSrc": "6116:17:6",
"nodeType": "YulFunctionCall",
"src": "6116:17:6"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "6106:6:6",
"nodeType": "YulIdentifier",
"src": "6106:6:6"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "6072:18:6",
"nodeType": "YulIdentifier",
"src": "6072:18:6"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "6065:6:6",
"nodeType": "YulIdentifier",
"src": "6065:6:6"
},
"nativeSrc": "6065:26:6",
"nodeType": "YulFunctionCall",
"src": "6065:26:6"
},
"nativeSrc": "6062:81:6",
"nodeType": "YulIf",
"src": "6062:81:6"
},
{
"body": {
"nativeSrc": "6195:42:6",
"nodeType": "YulBlock",
"src": "6195:42:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "6209:16:6",
"nodeType": "YulIdentifier",
"src": "6209:16:6"
},
"nativeSrc": "6209:18:6",
"nodeType": "YulFunctionCall",
"src": "6209:18:6"
},
"nativeSrc": "6209:18:6",
"nodeType": "YulExpressionStatement",
"src": "6209:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "6159:18:6",
"nodeType": "YulIdentifier",
"src": "6159:18:6"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "6182:6:6",
"nodeType": "YulIdentifier",
"src": "6182:6:6"
},
{
"kind": "number",
"nativeSrc": "6190:2:6",
"nodeType": "YulLiteral",
"src": "6190:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "6179:2:6",
"nodeType": "YulIdentifier",
"src": "6179:2:6"
},
"nativeSrc": "6179:14:6",
"nodeType": "YulFunctionCall",
"src": "6179:14:6"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "6156:2:6",
"nodeType": "YulIdentifier",
"src": "6156:2:6"
},
"nativeSrc": "6156:38:6",
"nodeType": "YulFunctionCall",
"src": "6156:38:6"
},
"nativeSrc": "6153:84:6",
"nodeType": "YulIf",
"src": "6153:84:6"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "5923:320:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "5958:4:6",
"nodeType": "YulTypedName",
"src": "5958:4:6",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "5967:6:6",
"nodeType": "YulTypedName",
"src": "5967:6:6",
"type": ""
}
],
"src": "5923:320:6"
},
{
"body": {
"nativeSrc": "6314:53:6",
"nodeType": "YulBlock",
"src": "6314:53:6",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6331:3:6",
"nodeType": "YulIdentifier",
"src": "6331:3:6"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "6354:5:6",
"nodeType": "YulIdentifier",
"src": "6354:5:6"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "6336:17:6",
"nodeType": "YulIdentifier",
"src": "6336:17:6"
},
"nativeSrc": "6336:24:6",
"nodeType": "YulFunctionCall",
"src": "6336:24:6"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6324:6:6",
"nodeType": "YulIdentifier",
"src": "6324:6:6"
},
"nativeSrc": "6324:37:6",
"nodeType": "YulFunctionCall",
"src": "6324:37:6"
},
"nativeSrc": "6324:37:6",
"nodeType": "YulExpressionStatement",
"src": "6324:37:6"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "6249:118:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "6302:5:6",
"nodeType": "YulTypedName",
"src": "6302:5:6",
"type": ""
},
{
"name": "pos",
"nativeSrc": "6309:3:6",
"nodeType": "YulTypedName",
"src": "6309:3:6",
"type": ""
}
],
"src": "6249:118:6"
},
{
"body": {
"nativeSrc": "6527:288:6",
"nodeType": "YulBlock",
"src": "6527:288:6",
"statements": [
{
"nativeSrc": "6537:26:6",
"nodeType": "YulAssignment",
"src": "6537:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "6549:9:6",
"nodeType": "YulIdentifier",
"src": "6549:9:6"
},
{
"kind": "number",
"nativeSrc": "6560:2:6",
"nodeType": "YulLiteral",
"src": "6560:2:6",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6545:3:6",
"nodeType": "YulIdentifier",
"src": "6545:3:6"
},
"nativeSrc": "6545:18:6",
"nodeType": "YulFunctionCall",
"src": "6545:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "6537:4:6",
"nodeType": "YulIdentifier",
"src": "6537:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "6617:6:6",
"nodeType": "YulIdentifier",
"src": "6617:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6630:9:6",
"nodeType": "YulIdentifier",
"src": "6630:9:6"
},
{
"kind": "number",
"nativeSrc": "6641:1:6",
"nodeType": "YulLiteral",
"src": "6641:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6626:3:6",
"nodeType": "YulIdentifier",
"src": "6626:3:6"
},
"nativeSrc": "6626:17:6",
"nodeType": "YulFunctionCall",
"src": "6626:17:6"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "6573:43:6",
"nodeType": "YulIdentifier",
"src": "6573:43:6"
},
"nativeSrc": "6573:71:6",
"nodeType": "YulFunctionCall",
"src": "6573:71:6"
},
"nativeSrc": "6573:71:6",
"nodeType": "YulExpressionStatement",
"src": "6573:71:6"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "6698:6:6",
"nodeType": "YulIdentifier",
"src": "6698:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6711:9:6",
"nodeType": "YulIdentifier",
"src": "6711:9:6"
},
{
"kind": "number",
"nativeSrc": "6722:2:6",
"nodeType": "YulLiteral",
"src": "6722:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6707:3:6",
"nodeType": "YulIdentifier",
"src": "6707:3:6"
},
"nativeSrc": "6707:18:6",
"nodeType": "YulFunctionCall",
"src": "6707:18:6"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "6654:43:6",
"nodeType": "YulIdentifier",
"src": "6654:43:6"
},
"nativeSrc": "6654:72:6",
"nodeType": "YulFunctionCall",
"src": "6654:72:6"
},
"nativeSrc": "6654:72:6",
"nodeType": "YulExpressionStatement",
"src": "6654:72:6"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "6780:6:6",
"nodeType": "YulIdentifier",
"src": "6780:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6793:9:6",
"nodeType": "YulIdentifier",
"src": "6793:9:6"
},
{
"kind": "number",
"nativeSrc": "6804:2:6",
"nodeType": "YulLiteral",
"src": "6804:2:6",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6789:3:6",
"nodeType": "YulIdentifier",
"src": "6789:3:6"
},
"nativeSrc": "6789:18:6",
"nodeType": "YulFunctionCall",
"src": "6789:18:6"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "6736:43:6",
"nodeType": "YulIdentifier",
"src": "6736:43:6"
},
"nativeSrc": "6736:72:6",
"nodeType": "YulFunctionCall",
"src": "6736:72:6"
},
"nativeSrc": "6736:72:6",
"nodeType": "YulExpressionStatement",
"src": "6736:72:6"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
"nativeSrc": "6373:442:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "6483:9:6",
"nodeType": "YulTypedName",
"src": "6483:9:6",
"type": ""
},
{
"name": "value2",
"nativeSrc": "6495:6:6",
"nodeType": "YulTypedName",
"src": "6495:6:6",
"type": ""
},
{
"name": "value1",
"nativeSrc": "6503:6:6",
"nodeType": "YulTypedName",
"src": "6503:6:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "6511:6:6",
"nodeType": "YulTypedName",
"src": "6511:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "6522:4:6",
"nodeType": "YulTypedName",
"src": "6522:4:6",
"type": ""
}
],
"src": "6373:442:6"
},
{
"body": {
"nativeSrc": "6919:124:6",
"nodeType": "YulBlock",
"src": "6919:124:6",
"statements": [
{
"nativeSrc": "6929:26:6",
"nodeType": "YulAssignment",
"src": "6929:26:6",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "6941:9:6",
"nodeType": "YulIdentifier",
"src": "6941:9:6"
},
{
"kind": "number",
"nativeSrc": "6952:2:6",
"nodeType": "YulLiteral",
"src": "6952:2:6",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6937:3:6",
"nodeType": "YulIdentifier",
"src": "6937:3:6"
},
"nativeSrc": "6937:18:6",
"nodeType": "YulFunctionCall",
"src": "6937:18:6"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "6929:4:6",
"nodeType": "YulIdentifier",
"src": "6929:4:6"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "7009:6:6",
"nodeType": "YulIdentifier",
"src": "7009:6:6"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "7022:9:6",
"nodeType": "YulIdentifier",
"src": "7022:9:6"
},
{
"kind": "number",
"nativeSrc": "7033:1:6",
"nodeType": "YulLiteral",
"src": "7033:1:6",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7018:3:6",
"nodeType": "YulIdentifier",
"src": "7018:3:6"
},
"nativeSrc": "7018:17:6",
"nodeType": "YulFunctionCall",
"src": "7018:17:6"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "6965:43:6",
"nodeType": "YulIdentifier",
"src": "6965:43:6"
},
"nativeSrc": "6965:71:6",
"nodeType": "YulFunctionCall",
"src": "6965:71:6"
},
"nativeSrc": "6965:71:6",
"nodeType": "YulExpressionStatement",
"src": "6965:71:6"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nativeSrc": "6821:222:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "6891:9:6",
"nodeType": "YulTypedName",
"src": "6891:9:6",
"type": ""
},
{
"name": "value0",
"nativeSrc": "6903:6:6",
"nodeType": "YulTypedName",
"src": "6903:6:6",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "6914:4:6",
"nodeType": "YulTypedName",
"src": "6914:4:6",
"type": ""
}
],
"src": "6821:222:6"
},
{
"body": {
"nativeSrc": "7077:152:6",
"nodeType": "YulBlock",
"src": "7077:152:6",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7094:1:6",
"nodeType": "YulLiteral",
"src": "7094:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "7097:77:6",
"nodeType": "YulLiteral",
"src": "7097:77:6",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7087:6:6",
"nodeType": "YulIdentifier",
"src": "7087:6:6"
},
"nativeSrc": "7087:88:6",
"nodeType": "YulFunctionCall",
"src": "7087:88:6"
},
"nativeSrc": "7087:88:6",
"nodeType": "YulExpressionStatement",
"src": "7087:88:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7191:1:6",
"nodeType": "YulLiteral",
"src": "7191:1:6",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "7194:4:6",
"nodeType": "YulLiteral",
"src": "7194:4:6",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7184:6:6",
"nodeType": "YulIdentifier",
"src": "7184:6:6"
},
"nativeSrc": "7184:15:6",
"nodeType": "YulFunctionCall",
"src": "7184:15:6"
},
"nativeSrc": "7184:15:6",
"nodeType": "YulExpressionStatement",
"src": "7184:15:6"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7215:1:6",
"nodeType": "YulLiteral",
"src": "7215:1:6",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "7218:4:6",
"nodeType": "YulLiteral",
"src": "7218:4:6",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "7208:6:6",
"nodeType": "YulIdentifier",
"src": "7208:6:6"
},
"nativeSrc": "7208:15:6",
"nodeType": "YulFunctionCall",
"src": "7208:15:6"
},
"nativeSrc": "7208:15:6",
"nodeType": "YulExpressionStatement",
"src": "7208:15:6"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "7049:180:6",
"nodeType": "YulFunctionDefinition",
"src": "7049:180:6"
},
{
"body": {
"nativeSrc": "7279:147:6",
"nodeType": "YulBlock",
"src": "7279:147:6",
"statements": [
{
"nativeSrc": "7289:25:6",
"nodeType": "YulAssignment",
"src": "7289:25:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7312:1:6",
"nodeType": "YulIdentifier",
"src": "7312:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7294:17:6",
"nodeType": "YulIdentifier",
"src": "7294:17:6"
},
"nativeSrc": "7294:20:6",
"nodeType": "YulFunctionCall",
"src": "7294:20:6"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "7289:1:6",
"nodeType": "YulIdentifier",
"src": "7289:1:6"
}
]
},
{
"nativeSrc": "7323:25:6",
"nodeType": "YulAssignment",
"src": "7323:25:6",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "7346:1:6",
"nodeType": "YulIdentifier",
"src": "7346:1:6"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7328:17:6",
"nodeType": "YulIdentifier",
"src": "7328:17:6"
},
"nativeSrc": "7328:20:6",
"nodeType": "YulFunctionCall",
"src": "7328:20:6"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "7323:1:6",
"nodeType": "YulIdentifier",
"src": "7323:1:6"
}
]
},
{
"nativeSrc": "7357:16:6",
"nodeType": "YulAssignment",
"src": "7357:16:6",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7368:1:6",
"nodeType": "YulIdentifier",
"src": "7368:1:6"
},
{
"name": "y",
"nativeSrc": "7371:1:6",
"nodeType": "YulIdentifier",
"src": "7371:1:6"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7364:3:6",
"nodeType": "YulIdentifier",
"src": "7364:3:6"
},
"nativeSrc": "7364:9:6",
"nodeType": "YulFunctionCall",
"src": "7364:9:6"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "7357:3:6",
"nodeType": "YulIdentifier",
"src": "7357:3:6"
}
]
},
{
"body": {
"nativeSrc": "7397:22:6",
"nodeType": "YulBlock",
"src": "7397:22:6",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "7399:16:6",
"nodeType": "YulIdentifier",
"src": "7399:16:6"
},
"nativeSrc": "7399:18:6",
"nodeType": "YulFunctionCall",
"src": "7399:18:6"
},
"nativeSrc": "7399:18:6",
"nodeType": "YulExpressionStatement",
"src": "7399:18:6"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "7389:1:6",
"nodeType": "YulIdentifier",
"src": "7389:1:6"
},
{
"name": "sum",
"nativeSrc": "7392:3:6",
"nodeType": "YulIdentifier",
"src": "7392:3:6"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7386:2:6",
"nodeType": "YulIdentifier",
"src": "7386:2:6"
},
"nativeSrc": "7386:10:6",
"nodeType": "YulFunctionCall",
"src": "7386:10:6"
},
"nativeSrc": "7383:36:6",
"nodeType": "YulIf",
"src": "7383:36:6"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "7235:191:6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "7266:1:6",
"nodeType": "YulTypedName",
"src": "7266:1:6",
"type": ""
},
{
"name": "y",
"nativeSrc": "7269:1:6",
"nodeType": "YulTypedName",
"src": "7269:1:6",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "7275:3:6",
"nodeType": "YulTypedName",
"src": "7275:3:6",
"type": ""
}
],
"src": "7235:191:6"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_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_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\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 cleanup_t_uint168(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffffff)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_uint168(value))) { 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 abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n value := cleanup_t_address(value)\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_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\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_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_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_address(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 cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(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_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\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_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 abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\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}\n",
"id": 6,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b50d3801561001b575f80fd5b50d28015610027575f80fd5b50600436106100b4575f3560e01c806340c10f191161007c57806340c10f191461017257806370a082311461018e57806395d89b41146101be578063a9059cbb146101dc578063dd62ed3e1461020c576100b4565b806306fdde03146100b8578063095ea7b3146100d657806318160ddd1461010657806323b872dd14610124578063313ce56714610154575b5f80fd5b6100c061023c565b6040516100cd9190610b27565b60405180910390f35b6100f060048036038101906100eb9190610c03565b6102cc565b6040516100fd9190610c5b565b60405180910390f35b61010e6102ee565b60405161011b9190610c83565b60405180910390f35b61013e60048036038101906101399190610c9c565b6102f7565b60405161014b9190610c5b565b60405180910390f35b61015c610325565b6040516101699190610d07565b60405180910390f35b61018c60048036038101906101879190610c03565b61032d565b005b6101a860048036038101906101a39190610d20565b61033b565b6040516101b59190610c83565b60405180910390f35b6101c6610380565b6040516101d39190610b27565b60405180910390f35b6101f660048036038101906101f19190610c03565b610410565b6040516102039190610c5b565b60405180910390f35b61022660048036038101906102219190610d4b565b610432565b6040516102339190610c83565b60405180910390f35b60606003805461024b90610db6565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610db6565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b5f806102d66104b4565b90506102e38185856104bb565b600191505092915050565b5f600254905090565b5f806103016104b4565b905061030e8582856104cd565b610319858585610560565b60019150509392505050565b5f6006905090565b6103378282610650565b5050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461038f90610db6565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb90610db6565b80156104065780601f106103dd57610100808354040283529160200191610406565b820191905f5260205f20905b8154815290600101906020018083116103e957829003601f168201915b5050505050905090565b5f8061041a6104b4565b9050610427818585610560565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104c883838360016106cf565b505050565b5f6104d88484610432565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561055a578181101561054b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161054293929190610df5565b60405180910390fd5b61055984848484035f6106cf565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610640575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106379190610e2a565b60405180910390fd5b61064b83838361089e565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c0575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106b79190610e2a565b60405180910390fd5b6106cb5f838361089e565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361073f575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107369190610e2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107af575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107a69190610e2a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610898578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161088f9190610c83565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108ee578060025f8282546108e29190610e70565b925050819055506109bc565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610977578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161096e93929190610df5565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a03578060025f8282540392505081905550610a4d565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610aaa9190610c83565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610af982610ab7565b610b038185610ac1565b9350610b13818560208601610ad1565b610b1c81610adf565b840191505092915050565b5f6020820190508181035f830152610b3f8184610aef565b905092915050565b5f80fd5b5f74ffffffffffffffffffffffffffffffffffffffffff82169050919050565b610b7481610b4b565b8114610b7e575f80fd5b50565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610baa82610b81565b9050919050565b5f81359050610bbf81610b6b565b610bc881610ba0565b905092915050565b5f819050919050565b610be281610bd0565b8114610bec575f80fd5b50565b5f81359050610bfd81610bd9565b92915050565b5f8060408385031215610c1957610c18610b47565b5b5f610c2685828601610bb1565b9250506020610c3785828601610bef565b9150509250929050565b5f8115159050919050565b610c5581610c41565b82525050565b5f602082019050610c6e5f830184610c4c565b92915050565b610c7d81610bd0565b82525050565b5f602082019050610c965f830184610c74565b92915050565b5f805f60608486031215610cb357610cb2610b47565b5b5f610cc086828701610bb1565b9350506020610cd186828701610bb1565b9250506040610ce286828701610bef565b9150509250925092565b5f60ff82169050919050565b610d0181610cec565b82525050565b5f602082019050610d1a5f830184610cf8565b92915050565b5f60208284031215610d3557610d34610b47565b5b5f610d4284828501610bb1565b91505092915050565b5f8060408385031215610d6157610d60610b47565b5b5f610d6e85828601610bb1565b9250506020610d7f85828601610bb1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610dcd57607f821691505b602082108103610de057610ddf610d89565b5b50919050565b610def81610ba0565b82525050565b5f606082019050610e085f830186610de6565b610e156020830185610c74565b610e226040830184610c74565b949350505050565b5f602082019050610e3d5f830184610de6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e7a82610bd0565b9150610e8583610bd0565b9250828201905080821115610e9d57610e9c610e43565b5b9291505056fea26474726f6e58221220e8a2149cf94f56b30e9fc41561172d852d7e3dcd26b09e25532d70b33ea5a1c264736f6c634300081a0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP CALLTOKENID DUP1 ISZERO PUSH2 0x1B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP CALLTOKENVALUE DUP1 ISZERO PUSH2 0x27 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x20C JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x124 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x154 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC0 PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCD SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEB SWAP2 SWAP1 PUSH2 0xC03 JUMP JUMPDEST PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFD SWAP2 SWAP1 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10E PUSH2 0x2EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11B SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x139 SWAP2 SWAP1 PUSH2 0xC9C JUMP JUMPDEST PUSH2 0x2F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14B SWAP2 SWAP1 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15C PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x169 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x187 SWAP2 SWAP1 PUSH2 0xC03 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xD20 JUMP JUMPDEST PUSH2 0x33B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B5 SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C6 PUSH2 0x380 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F1 SWAP2 SWAP1 PUSH2 0xC03 JUMP JUMPDEST PUSH2 0x410 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x203 SWAP2 SWAP1 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0x432 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x233 SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x24B SWAP1 PUSH2 0xDB6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x277 SWAP1 PUSH2 0xDB6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2C2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x299 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2C2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2A5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x2D6 PUSH2 0x4B4 JUMP JUMPDEST SWAP1 POP PUSH2 0x2E3 DUP2 DUP6 DUP6 PUSH2 0x4BB JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x301 PUSH2 0x4B4 JUMP JUMPDEST SWAP1 POP PUSH2 0x30E DUP6 DUP3 DUP6 PUSH2 0x4CD JUMP JUMPDEST PUSH2 0x319 DUP6 DUP6 DUP6 PUSH2 0x560 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x6 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x337 DUP3 DUP3 PUSH2 0x650 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x38F SWAP1 PUSH2 0xDB6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3BB SWAP1 PUSH2 0xDB6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x406 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x406 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3E9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x41A PUSH2 0x4B4 JUMP JUMPDEST SWAP1 POP PUSH2 0x427 DUP2 DUP6 DUP6 PUSH2 0x560 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C8 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6CF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4D8 DUP5 DUP5 PUSH2 0x432 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x55A JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x54B JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x542 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x559 DUP5 DUP5 DUP5 DUP5 SUB PUSH0 PUSH2 0x6CF JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x640 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x637 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64B DUP4 DUP4 DUP4 PUSH2 0x89E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6B7 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6CB PUSH0 DUP4 DUP4 PUSH2 0x89E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x73F JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x736 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7AF JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0xE2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x898 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x88F SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8EE JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x8E2 SWAP2 SWAP1 PUSH2 0xE70 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9BC JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x977 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x96E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA03 JUMPI DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA4D JUMP JUMPDEST DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAAA SWAP2 SWAP1 PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xAF9 DUP3 PUSH2 0xAB7 JUMP JUMPDEST PUSH2 0xB03 DUP2 DUP6 PUSH2 0xAC1 JUMP JUMPDEST SWAP4 POP PUSH2 0xB13 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0xB1C DUP2 PUSH2 0xADF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xB3F DUP2 DUP5 PUSH2 0xAEF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH21 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB74 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP2 EQ PUSH2 0xB7E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xBAA DUP3 PUSH2 0xB81 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBBF DUP2 PUSH2 0xB6B JUMP JUMPDEST PUSH2 0xBC8 DUP2 PUSH2 0xBA0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE2 DUP2 PUSH2 0xBD0 JUMP JUMPDEST DUP2 EQ PUSH2 0xBEC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBFD DUP2 PUSH2 0xBD9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC19 JUMPI PUSH2 0xC18 PUSH2 0xB47 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC26 DUP6 DUP3 DUP7 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC37 DUP6 DUP3 DUP7 ADD PUSH2 0xBEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC55 DUP2 PUSH2 0xC41 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC6E PUSH0 DUP4 ADD DUP5 PUSH2 0xC4C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC7D DUP2 PUSH2 0xBD0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC96 PUSH0 DUP4 ADD DUP5 PUSH2 0xC74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCB3 JUMPI PUSH2 0xCB2 PUSH2 0xB47 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCC0 DUP7 DUP3 DUP8 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCD1 DUP7 DUP3 DUP8 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD01 DUP2 PUSH2 0xCEC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD1A PUSH0 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD35 JUMPI PUSH2 0xD34 PUSH2 0xB47 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD42 DUP5 DUP3 DUP6 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xB47 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP6 DUP3 DUP7 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD7F DUP6 DUP3 DUP7 ADD PUSH2 0xBB1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDCD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDE0 JUMPI PUSH2 0xDDF PUSH2 0xD89 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDEF DUP2 PUSH2 0xBA0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE08 PUSH0 DUP4 ADD DUP7 PUSH2 0xDE6 JUMP JUMPDEST PUSH2 0xE15 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC74 JUMP JUMPDEST PUSH2 0xE22 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC74 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE3D PUSH0 DUP4 ADD DUP5 PUSH2 0xDE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xE7A DUP3 PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP PUSH2 0xE85 DUP4 PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xE9D JUMPI PUSH2 0xE9C PUSH2 0xE43 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x74726F6E58 0x22 SLT KECCAK256 0xE8 LOG2 EQ SWAP13 0xF9 0x4F JUMP 0xB3 0xE SWAP16 0xC4 ISZERO PUSH2 0x172D DUP6 0x2D PUSH31 0x3DCD26B09E25532D70B33EA5A1C264736F6C634300081A0033000000000000 ",
"sourceMap": "115:309:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;249:82:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;337:85;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;249:82:5:-;299:5;323:1;316:8;;249:82;:::o;337:85::-;398:17;404:2;408:6;398:5;:17::i;:::-;337:85;;:::o;2933:116:1:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1962:93::-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8630:128:1:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:6:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:128;1606:7;1646:44;1639:5;1635:56;1624:67;;1569:128;;;:::o;1703:122::-;1776:24;1794:5;1776:24;:::i;:::-;1769:5;1766:35;1756:63;;1815:1;1812;1805:12;1756:63;1703:122;:::o;1831:126::-;1868:7;1908:42;1901:5;1897:54;1886:65;;1831:126;;;:::o;1963:96::-;2000:7;2029:24;2047:5;2029:24;:::i;:::-;2018:35;;1963:96;;;:::o;2065:181::-;2111:5;2149:6;2136:20;2127:29;;2165:33;2192:5;2165:33;:::i;:::-;2216:24;2234:5;2216:24;:::i;:::-;2207:33;;2065:181;;;;:::o;2252:77::-;2289:7;2318:5;2307:16;;2252:77;;;:::o;2335:122::-;2408:24;2426:5;2408:24;:::i;:::-;2401:5;2398:35;2388:63;;2447:1;2444;2437:12;2388:63;2335:122;:::o;2463:139::-;2509:5;2547:6;2534:20;2525:29;;2563:33;2590:5;2563:33;:::i;:::-;2463:139;;;;:::o;2608:474::-;2676:6;2684;2733:2;2721:9;2712:7;2708:23;2704:32;2701:119;;;2739:79;;:::i;:::-;2701:119;2859:1;2884:53;2929:7;2920:6;2909:9;2905:22;2884:53;:::i;:::-;2874:63;;2830:117;2986:2;3012:53;3057:7;3048:6;3037:9;3033:22;3012:53;:::i;:::-;3002:63;;2957:118;2608:474;;;;;:::o;3088:90::-;3122:7;3165:5;3158:13;3151:21;3140:32;;3088:90;;;:::o;3184:109::-;3265:21;3280:5;3265:21;:::i;:::-;3260:3;3253:34;3184:109;;:::o;3299:210::-;3386:4;3424:2;3413:9;3409:18;3401:26;;3437:65;3499:1;3488:9;3484:17;3475:6;3437:65;:::i;:::-;3299:210;;;;:::o;3515:118::-;3602:24;3620:5;3602:24;:::i;:::-;3597:3;3590:37;3515:118;;:::o;3639:222::-;3732:4;3770:2;3759:9;3755:18;3747:26;;3783:71;3851:1;3840:9;3836:17;3827:6;3783:71;:::i;:::-;3639:222;;;;:::o;3867:619::-;3944:6;3952;3960;4009:2;3997:9;3988:7;3984:23;3980:32;3977:119;;;4015:79;;:::i;:::-;3977:119;4135:1;4160:53;4205:7;4196:6;4185:9;4181:22;4160:53;:::i;:::-;4150:63;;4106:117;4262:2;4288:53;4333:7;4324:6;4313:9;4309:22;4288:53;:::i;:::-;4278:63;;4233:118;4390:2;4416:53;4461:7;4452:6;4441:9;4437:22;4416:53;:::i;:::-;4406:63;;4361:118;3867:619;;;;;:::o;4492:86::-;4527:7;4567:4;4560:5;4556:16;4545:27;;4492:86;;;:::o;4584:112::-;4667:22;4683:5;4667:22;:::i;:::-;4662:3;4655:35;4584:112;;:::o;4702:214::-;4791:4;4829:2;4818:9;4814:18;4806:26;;4842:67;4906:1;4895:9;4891:17;4882:6;4842:67;:::i;:::-;4702:214;;;;:::o;4922:329::-;4981:6;5030:2;5018:9;5009:7;5005:23;5001:32;4998:119;;;5036:79;;:::i;:::-;4998:119;5156:1;5181:53;5226:7;5217:6;5206:9;5202:22;5181:53;:::i;:::-;5171:63;;5127:117;4922:329;;;;:::o;5257:474::-;5325:6;5333;5382:2;5370:9;5361:7;5357:23;5353:32;5350:119;;;5388:79;;:::i;:::-;5350:119;5508:1;5533:53;5578:7;5569:6;5558:9;5554:22;5533:53;:::i;:::-;5523:63;;5479:117;5635:2;5661:53;5706:7;5697:6;5686:9;5682:22;5661:53;:::i;:::-;5651:63;;5606:118;5257:474;;;;;:::o;5737:180::-;5785:77;5782:1;5775:88;5882:4;5879:1;5872:15;5906:4;5903:1;5896:15;5923:320;5967:6;6004:1;5998:4;5994:12;5984:22;;6051:1;6045:4;6041:12;6072:18;6062:81;;6128:4;6120:6;6116:17;6106:27;;6062:81;6190:2;6182:6;6179:14;6159:18;6156:38;6153:84;;6209:18;;:::i;:::-;6153:84;5974:269;5923:320;;;:::o;6249:118::-;6336:24;6354:5;6336:24;:::i;:::-;6331:3;6324:37;6249:118;;:::o;6373:442::-;6522:4;6560:2;6549:9;6545:18;6537:26;;6573:71;6641:1;6630:9;6626:17;6617:6;6573:71;:::i;:::-;6654:72;6722:2;6711:9;6707:18;6698:6;6654:72;:::i;:::-;6736;6804:2;6793:9;6789:18;6780:6;6736:72;:::i;:::-;6373:442;;;;;;:::o;6821:222::-;6914:4;6952:2;6941:9;6937:18;6929:26;;6965:71;7033:1;7022:9;7018:17;7009:6;6965:71;:::i;:::-;6821:222;;;;:::o;7049:180::-;7097:77;7094:1;7087:88;7194:4;7191:1;7184:15;7218:4;7215:1;7208:15;7235:191;7275:3;7294:20;7312:1;7294:20;:::i;:::-;7289:25;;7328:20;7346:1;7328:20;:::i;:::-;7323:25;;7371:1;7368;7364:9;7357:16;;7392:3;7389:1;7386:10;7383:36;;;7399:18;;:::i;:::-;7383:36;7235:191;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "760200",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"allowance(address,address)": "infinite",
"approve(address,uint256)": "infinite",
"balanceOf(address)": "2955",
"decimals()": "475",
"mint(address,uint256)": "infinite",
"name()": "infinite",
"symbol()": "infinite",
"totalSupply()": "2525",
"transfer(address,uint256)": "infinite",
"transferFrom(address,address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"decimals()": "313ce567",
"mint(address,uint256)": "40c10f19",
"name()": "06fdde03",
"symbol()": "95d89b41",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.26+commit.733b4d28"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"errors": {
"ERC20InsufficientAllowance(address,uint256,uint256)": [
{
"details": "Indicates a failure with the `spender`’s `allowance`. Used in transfers.",
"params": {
"allowance": "Amount of tokens a `spender` is allowed to operate with.",
"needed": "Minimum amount required to perform a transfer.",
"spender": "Address that may be allowed to operate on tokens without being their owner."
}
}
],
"ERC20InsufficientBalance(address,uint256,uint256)": [
{
"details": "Indicates an error related to the current `balance` of a `sender`. Used in transfers.",
"params": {
"balance": "Current balance for the interacting account.",
"needed": "Minimum amount required to perform a transfer.",
"sender": "Address whose tokens are being transferred."
}
}
],
"ERC20InvalidApprover(address)": [
{
"details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
"params": {
"approver": "Address initiating an approval operation."
}
}
],
"ERC20InvalidReceiver(address)": [
{
"details": "Indicates a failure with the token `receiver`. Used in transfers.",
"params": {
"receiver": "Address to which tokens are being transferred."
}
}
],
"ERC20InvalidSender(address)": [
{
"details": "Indicates a failure with the token `sender`. Used in transfers.",
"params": {
"sender": "Address whose tokens are being transferred."
}
}
],
"ERC20InvalidSpender(address)": [
{
"details": "Indicates a failure with the `spender` to be approved. Used in approvals.",
"params": {
"spender": "Address that may be allowed to operate on tokens without being their owner."
}
}
]
},
"events": {
"Approval(address,address,uint256)": {
"details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
},
"Transfer(address,address,uint256)": {
"details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
}
},
"kind": "dev",
"methods": {
"allowance(address,address)": {
"details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
},
"approve(address,uint256)": {
"details": "See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."
},
"balanceOf(address)": {
"details": "Returns the value of tokens owned by `account`."
},
"decimals()": {
"details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
},
"name()": {
"details": "Returns the name of the token."
},
"symbol()": {
"details": "Returns the symbol of the token, usually a shorter version of the name."
},
"totalSupply()": {
"details": "Returns the value of tokens in existence."
},
"transfer(address,uint256)": {
"details": "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."
},
"transferFrom(address,address,uint256)": {
"details": "See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/MockUSDT.sol": "MockUSDT"
},
"evmVersion": "cancun",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
"keccak256": "0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998",
"license": "MIT",
"urls": [
"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c",
"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"
]
},
"@openzeppelin/contracts/token/ERC20/ERC20.sol": {
"keccak256": "0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29",
"license": "MIT",
"urls": [
"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195",
"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"
]
},
"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
"keccak256": "0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2",
"license": "MIT",
"urls": [
"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303",
"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"
]
},
"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
"keccak256": "0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f",
"license": "MIT",
"urls": [
"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e",
"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"
]
},
"@openzeppelin/contracts/utils/Context.sol": {
"keccak256": "0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2",
"license": "MIT",
"urls": [
"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12",
"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"
]
},
"contracts/MockUSDT.sol": {
"keccak256": "0x133823d2503bcdd66d32732fb78f56cf0b0986434e05e69f3c3f52af19c93720",
"license": "MIT",
"urls": [
"bzz-raw://7f8dde0a7a1d158b25c4b1344813957d075287f3081cebeb4ccb4f8f03f1a1bf",
"dweb:/ipfs/QmT2T1ZfCVGWieJZ5r1iZqw5QnXL7YZjH5e2aBtL2BhLhP"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MockUSDT is ERC20 {
constructor() ERC20("Mock USDT", "mUSDT") {
_mint(msg.sender, 1_000_000 * 10**6);
}
function decimals() public pure override returns (uint8) {
return 6;
}
function mint(address to, uint256 amount) external {
_mint(to, amount);
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "remix_tests.sol";
import "../contracts/3_Ballot.sol";
contract BallotTest {
bytes32[] proposalNames;
Ballot ballotToTest;
function beforeAll () public {
proposalNames.push(bytes32("candidate1"));
ballotToTest = new Ballot(proposalNames);
}
function checkWinningProposal () public {
ballotToTest.vote(0);
Assert.equal(ballotToTest.winningProposal(), uint(0), "proposal at index 0 should be the winning proposal");
Assert.equal(ballotToTest.winnerName(), bytes32("candidate1"), "candidate1 should be the winner name");
}
function checkWinninProposalWithReturnValue () public view returns (bool) {
return ballotToTest.winningProposal() == 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment